jQuery - Determine user vs programmatic event -


मेरे पास & lt; select & gt; है और मैं change () घटना जब उपयोगकर्ता चुनिंदा विकल्प को बदलता है तो मैं कई कार्यों की एक श्रृंखला करना चाहता हूं। लेकिन, अगर मैं $ (item) .trigger ('change') के माध्यम से बदलाव को ट्रिगर करता हूं तो मैं कार्यवाही की शृंखला को निष्पादित नहीं करना चाहता।

मैं एक अधिभार देखता हूं मापदंडों। मुझे यकीन नहीं है कि यह काम करेगा क्योंकि मैंने एक कस्टम इवेंट नहीं लिखा है। तो, उपयोगकर्ता द्वारा निकाल दिया गया घटना और मेरा प्रोग्राममैटिक निकाल दिया गया ईवेंट के बीच अंतर को निर्धारित करने के लिए मुझे क्या करना चाहिए?

ऐसा करने का एक त्वरित और गंदे तरीका है:

  var progChange = false; $ ('चुनें')। परिवर्तन (फ़ंक्शन () {if (! ProgChange) {// उपयोगकर्ता कार्रवाई ...} progChange = false;}); फ़ंक्शन कॉल सेलेक्ट चेंज () {progChange = true; $ ( 'चुनें') को बदलने ()।; }   

आप इसे अनिवार्यतः उसी तरह से ट्रिगर विधि से कर सकते हैं, और यह वैश्विक को खत्म कर देगा, जो एक अच्छी बात है:

  $ ('select')। परिवर्तन (फ़ंक्शन (इवेंट, प्रॉजेक्ट) {if (! ProgChange) {// उपयोगकर्ता क्रियाएं}}}); $ ('चयन करें')। ट्रिगर ('परिवर्तन', [सच]);   

कार्य उदाहरण:

Comments

Popular posts from this blog

mysql - BLOB/TEXT column 'value' used in key specification without a key length -

php - Creating canonical URLs with custom route-classes -

javascript - What is an alternative to using getElementByClass for hiding multiple elements? -