jQuery कई बार गोलीबारी की घटनाओं पर क्लिक करें


283

मैं जावास्क्रिप्ट में एक वीडियो पोकर गेम लिखने का प्रयास कर रहा हूं, इसके मूल के नीचे आने का एक तरीका है, और मैं एक समस्या में चला गया हूं जहां jQuery क्लिक इवेंट हैंडलर कई बार फायर कर रहे हैं।

वे एक शर्त रखने के लिए बटन से जुड़े होते हैं, और यह एक गेम के दौरान पहले हाथ पर दांव लगाने के लिए ठीक काम करता है (केवल एक बार फायरिंग); लेकिन दूसरे हाथ के लिए सट्टेबाजी में, यह क्लिक इवेंट को हर बार दो बार फायर करता है जब भी एक शर्त या जगह बटन दबाया जाता है (इसलिए प्रत्येक प्रेस के लिए दो बार सही राशि शर्त होती है)। कुल मिलाकर, यह एक बार एक बेट बटन को दबाते समय क्लिक इवेंट को निकाल दिए जाने की संख्या के लिए इस पैटर्न का अनुसरण करता है - जहां गेम की शुरुआत से ith हाथ के सट्टेबाजी के लिए अनुक्रम का ith शब्द है : 1, 2, 4 , 7, 11, 16, 22, 29, 37, 46, 46, जो प्रतीत होता है n (n + 1) / 2 + 1 जो कुछ भी इसके लायक है - और मैं इसे समझ पाने के लिए पर्याप्त स्मार्ट नहीं था, मैंने OEIS का उपयोग किया था । :)

यहां क्लिक इवेंट हैंडलर के साथ कार्य किया जा रहा है; उम्मीद है कि यह समझना आसान है (मुझे पता है कि नहीं, मैं उस पर भी बेहतर करना चाहते हैं):

/** The following function keeps track of bet buttons that are pressed, until place button is pressed to place bet. **/
function pushingBetButtons() {
    $("#money").text("Money left: $" + player.money); // displays money player has left

    $(".bet").click(function() {
        var amount = 0; // holds the amount of money the player bet on this click
        if($(this).attr("id") == "bet1") { // the player just bet $1
            amount = 1;
        } else if($(this).attr("id") == "bet5") { // etc.
            amount = 5;
        } else if($(this).attr("id") == "bet25") {
            amount = 25;
        } else if($(this).attr("id") == "bet100") {
            amount = 100;
        } else if($(this).attr("id") == "bet500") {
            amount = 500;
        } else if($(this).attr("id") == "bet1000") {
            amount = 1000;
        }
        if(player.money >= amount) { // check whether the player has this much to bet
            player.bet += amount; // add what was just bet by clicking that button to the total bet on this hand
            player.money -= amount; // and, of course, subtract it from player's current pot
            $("#money").text("Money left: $" + player.money); // then redisplay what the player has left
        } else {
            alert("You don't have $" + amount + " to bet.");
        }
    });

    $("#place").click(function() {
        if(player.bet == 0) { // player didn't bet anything on this hand
            alert("Please place a bet first.");
        } else {
            $("#card_para").css("display", "block"); // now show the cards
            $(".card").bind("click", cardClicked); // and set up the event handler for the cards
            $("#bet_buttons_para").css("display", "none"); // hide the bet buttons and place bet button
            $("#redraw").css("display", "block"); // and reshow the button for redrawing the hand
            player.bet = 0; // reset the bet for betting on the next hand
            drawNewHand(); // draw the cards
        }
    });
}

कृपया मुझे बताएं कि क्या आपके पास कोई विचार या सुझाव है, या यदि मेरी समस्या का समाधान यहां की एक अन्य समस्या के समाधान के समान है (मैंने कई समान शीर्षक वाले थ्रेड्स को देखा है और समाधान खोजने में कोई भाग्य नहीं था जो काम कर सकता है मेरे लिए)।


var amount = parseInt(this.id.replace(/[^\d]/g,''),10);और अगर आप एक बार से अधिक एक तत्व की ही संपत्ति का उपयोग करने जा रहे हैं कैश कि संपत्ति, इसे देख नहीं रखते। दिखना महंगा है।
डेविड कहते हैं कि मोनिका

प्रतिक्रिया के लिए धन्यवाद, और कैशिंग गुणों पर टिप। मैंने प्लेयर। लोनी और प्लेयर.बेट को स्थानीय वेरिएबल्स के पैसे में सेट किया और उस फ़ंक्शन के अंदर शर्त लगाई और उन लोगों के बजाय हेरफेर किया, और मेरे बाकी कोड को भी करने के लिए बदल देगा। :) यदि आपके पास समय है, तो क्या आप यह भी बता सकते हैं कि आपका क्या सुझाव है। राशि का आरंभीकरण कर रहा है; यह कुछ नियमित अभिव्यक्ति की तरह दिखता है, लेकिन मैं इसे आसानी से समझ नहीं सकता।
ग्रेगरी फाउलर

@GregoryFowler - आपके प्रश्न से असंबंधित है, लेकिन ... एक जावास्क्रिप्ट स्विच स्टेटमेंट देखने लायक हो सकता है।
क्लेटन

2
यार, आपका फंक्शन हर बार एक क्लिक हैंडलर लगा रहा है। यदि आप इसे प्रत्येक राउंड में आमंत्रित करते हैं, तो राउंड दो में आपके दो हैंडलर वगैरह हैं। प्रत्येक हैंडलर अपना काम करता है और 100 राउंड में आपको 100 अलर्ट मिलते हैं।
मार्को फॉस्टिनेली

ऐसा इसलिए होता है क्योंकि कहीं न कहीं आपके कोड में, आप पहले हैंडबाइंड किए बिना इवेंट हैंडलर को रीबाइंड कर रहे हैं। इस प्रश्न को एक समान परिदृश्य और एक अच्छी व्याख्या के लिए देखें।
jpaugh

जवाबों:


526

यह सुनिश्चित करने के लिए कि केवल एक क्लिक का उपयोग करने के लिए एक बार कार्रवाई करें:

$(".bet").unbind().click(function() {
    //Stuff
});

31
ठीक है, तुम कल कहाँ थे, रोब? ;) यह वही है जो मैं देख रहा था, पता नहीं क्यों मैं इसे पहले नहीं मिला। लेकिन यह अभी भी भेस में एक आशीर्वाद था क्योंकि मैंने बहुत सारे अन्य सामान सीखे थे।
ग्रेगरी फाउलर

1
;) माफ़ करना। मैं इस पर भी कुछ दिनों के लिए अपने पहियों के आसपास घूमती है। मैं अभी भी एक तार्किक कारण की तलाश कर रहा हूं कि यह पहले स्थान पर क्यों होता है।
रोब

6
इतने कामों के बाद मनुष्य ने ऐसा किया। मेरे मामले को छोड़कर मैंने इसके बराबर का उपयोग किया: $ ("। Bet")। बंद ()। पर ()
MadTurki

7
जैसा कि नीचे jroi_web कहता है, यह विधि पदावनत है। हाल ही के समाधान के लिए @ ट्रॉल का जवाब देखें।
पास्कल

एक क्लिक हैंडलर एक बंद फेंकने की चीज नहीं है। खासतौर पर तब जब यह सवाल में दिखाया गया हो तो भारी। आप इसे संलग्न करने वाले हैं और जब तक पृष्ठ रहता है, तब तक इसे अपना काम करने देता है।
मार्को फॉस्टिनेली

378

.unbind()पदावनत है और आपको .off()इसके बजाय विधि का उपयोग करना चाहिए । कॉल करने से .off()ठीक पहले कॉल करें .on()

यह सभी ईवेंट हैंडलर को हटा देगा:

$(element).off().on('click', function() {
    // function body
});

केवल पंजीकृत 'क्लिक' ईवेंट हैंडलर्स को हटाने के लिए:

$(element).off('click').on('click', function() {
    // function body
});

9
इसे jQuery के नए संस्करण में उपयोग किया जाना चाहिए क्योंकि unbind, die या live पहले से ही अस्वीकृत है
jroi_web

एक जादू की तरह काम करता है! मेरा फंक्शन एक बार क्लिक करने पर चलेगा, फिर दो बार, चार बार… .ऑफ़ () से पहले .on () ने इस समस्या को हल किया।
जम्पऑनकोमांड

146

।एक()

एक बेहतर विकल्प होगा .one():

हैंडलर को प्रति घटना प्रकार के अनुसार एक बार प्रति तत्व निष्पादित किया जाता है।

$(".bet").one('click',function() {
    //Your function
});

कई वर्गों और प्रत्येक वर्ग के मामले में एक बार क्लिक करने की आवश्यकता होती है,

$(".bet").on('click',function() {
    //Your function
    $(this).off('click');   //or $(this).unbind()
});

8
सबसे अच्छा जवाब, आपने मुझे एक मूर्खतापूर्ण हैक से बचाया, यह बहुत बेहतर है क्योंकि अगर आपके पास एक onclickही तत्व के लिए कई ईवेंट हैं, लेकिन विभिन्न स्थानों पर यह बाकी को प्रभावित नहीं करेगा, unbind()और off()बस onclickफिर से अन्य धन्यवाद को नष्ट कर देगा
फ़ैनकुश

3
सभी उत्तरों की कोशिश करने के बाद, यह मेरे लिए केवल एक ही काम है।
नीरव

10
एक बात पर ध्यान दें, यदि आप चाहते हैं कि फ़ंक्शन केवल एक बार प्रति CLICK में आग लगा दे, लेकिन बाद के क्लिकों पर आग लगाते रहें, तो यह पृष्ठ के जीवन के लिए केवल एक बार आग लग जाएगी। इसलिए mtl का उत्तर ऑफ () ऑन () विधि के साथ उपयोग करना होगा।
डेरेक हेविट

1
@ मुंशचेयर, इसके कई कारण हो सकते हैं। एक दूसरे के अंदर एक ही वर्ग के साथ कई तत्व। या एक क्लिक हैंडलर एक पुनरावृति में कई बार पंजीकृत होता है।
शौनक डी

3
मेरे लिए काम नहीं कर रहा है - अभी भी कई क्लिक फायरिंग - कोई मतलब नहीं है क्योंकि आईडी के साथ केवल 1 बटन तत्व है और केवल 1 ईवेंट फंस गया है (क्लिक इवेंट)। मैंने सोचा कि यह एक jQuery बग था, लेकिन यह शायद बूटस्ट्रैप मोडल-डायलॉग बग है।
MC9000 10

78

आपको लगता है कि .off () .unbind () या .stopPropagation () अभी भी अपने विशिष्ट समस्या का समाधान नहीं करती है, तो उपयोग करने का प्रयास .stopImmediatePropagation () स्थितियों में बहुत अच्छा काम करता है जब आप बस चाहते हैं कि आपके घटना किसी भी उत्साह से भरा हुआ बिना और बिना नियंत्रित किया जा करने के लिए किसी भी अन्य घटनाओं को पहले से ही संभाला जा रहा है। कुछ इस तरह:

$(".bet").click(function(event) {
  event.stopImmediatePropagation();
  //Do Stuff
});

उसने चाल चली!


इससे मुझे दो बार गोलीबारी करने से रोकने के साथ-साथ बड़ी मदद मिली, लेकिन इसने मुझे बड़ा समय दिया। यह पता चला है कि यदि आप jQuery UI डायलॉग फ़ील्ड से जुड़े ईवेंट हैंडलर में event.stopImmediatePropagation () का उपयोग करते हैं, तो किसी कारण से, संवाद अब वैश्विक चर के नवीनतम उदाहरण को संदर्भित नहीं कर सकता है और इसके बजाय वैश्विक चर के संस्करण का उपयोग करता है jQuery के यूआई डायलॉग रेंडरिंग से पहले। मतलब, कि यदि, उदाहरण के लिए, आपका वैश्विक वैरिएबल घोषित किया गया था, लेकिन jQuery UI डायलॉग रेंडरिंग के समय पर इसे इनिशियलाइज़ नहीं किया गया, तो यह
असिंचित

1
या यदि आपने jQuery UI डायलॉग को रेंडर करने से पहले कुछ वैश्विक चर को 16 का मान दिया है, जो बाद में 55 में बदल गया, तो 16, jQuery UI डायलॉग इवेंट हैंडलर में उस वैश्विक चर के लिए दिखाई देगा, भले ही उस समय हो अब 16 नहीं। इसलिए, यह एक jQuery यूआई बग जैसा दिखता है, जिसके बारे में लोगों को जानकारी होनी चाहिए।
यूक्रेनट्रेन

बहुत विशिष्ट स्थितियों के लिए जिनका वर्णन करना और भी मुश्किल है। यह ठीक उसी तरह काम करता है जैसा आपने कहा था: "किसी अन्य घटनाओं को प्रभावित किए बिना काम करता है"। धन्यवाद! :)
टॉम्स बुगना

मेरे लिए पूरी तरह से ठीक काम करता है। धन्यवाद!
सोमनाथ पवार

18

यदि आप प्रत्येक "क्लिक" पर उस फ़ंक्शन को कॉल कर रहे हैं, तो यह प्रत्येक कॉल पर हैंडलर की एक और जोड़ी जोड़ रहा है

सिर्फ jQuery के साथ हैंडलर जोड़ना "ऑनक्लिक" विशेषता के मूल्य को स्थापित करने जैसा नहीं है। एक इच्छा के रूप में कई हैंडलर जोड़ सकते हैं।


4
आपके उत्तर ने मुझे सही दिशा में स्थापित किया और मैंने बहुत कुछ सीखा, लेकिन दुर्भाग्य से jQuery का उपयोग करके मेरी समस्या को हल करने के लिए पर्याप्त नहीं था। :) मैंने / बंद, लाइव (और प्रतिनिधि) / मरने, और एक का उपयोग करने की कोशिश की, और फिर addEventListener / removeEventListener, लेकिन सबसे अच्छा मैं कर सकता था हैंडलर की घातीय वृद्धि धीमी थी। मैं अंत में सिर्फ समय के लिए onclick के साथ अपनी समस्या को हल किया। लेकिन मैंने अभी भी जावास्क्रिप्ट के इवेंट मॉडल के बारे में बहुत कुछ सीखा है, जैसे आपके उत्तर से कैप्चरिंग / बुदबुदाहट, इसलिए मैं इसकी सराहना करता हूं। धन्यवाद। :)
ग्रेगरी फाउलर

बहुत बहुत धन्यवाद, मुझे विश्वास है कि मैं यह नहीं जानता था!
लीनी

12

कोई ईवेंट कई बार फायर करेगा जब वह कई बार पंजीकृत हो (भले ही एक ही हैंडलर के लिए)।

उदाहरण के लिए, $("ctrl").on('click', somefunction)यदि कोड के इस टुकड़े को हर बार पृष्ठ को आंशिक रूप से ताज़ा किया जाता है, तो घटना को हर बार भी पंजीकृत किया जा रहा है। इसलिए, भले ही ctrl को केवल एक बार क्लिक किया जाए, लेकिन यह "somefunction" को कई बार निष्पादित कर सकता है - कितनी बार यह निष्पादित होता है यह इस बात पर निर्भर करेगा कि यह कितनी बार पंजीकृत था।

यह जावास्क्रिप्ट में पंजीकृत किसी भी घटना के लिए सही है।

उपाय:

केवल एक बार "चालू" करना सुनिश्चित करें।

और किसी कारण से यदि आप वास्तुकला को नियंत्रित नहीं कर सकते हैं तो ऐसा करें:

$("ctrl").off('click'); $("ctrl").on('click', somefunction);


आप वास्तव में क्या कहना चाहते हैं?
सोमनाथ खरात

यह स्पष्ट नहीं करता है कि इस मामले में क्या चल रहा है। बटन में एक विशिष्ट आईडी और केवल 1 ईवेंट है (इसे कई बार नहीं कहा जा सकता है, क्योंकि यह केवल एक बार क्लिक किया जा सकता है)। यह एक बग है जो केवल jQuery के संवाद बॉक्स में दिखाई देता है (और पुन: पेश करने के लिए बहुत आसान है)।
MC9000

2
हम नहीं जानते कि क्या फ़ंक्शन "पुशबेटबटन" को केवल एक या कई बार कहा जाता है .. यदि इसे एक से अधिक बार कहा जाता है, तो घटना की तुलना में कई बार पंजीकृत किया जाता है और इसलिए यह मल्टीप्लेट्स को भी आग लगा देगा..यदि बटन को केवल एक बार क्लिक किया जाता है ।
कल्पेश पोपट

4

मुझे मार्कअप की वजह से समस्या थी।

HTML:

<div class="myclass">
 <div class="inner">

  <div class="myclass">
   <a href="#">Click Me</a>
  </div>

 </div>
</div>

jQuery

$('.myclass').on('click', 'a', function(event) { ... } );

आप ध्यान दें कि मेरे पास html में दो बार एक ही वर्ग 'myclass' है, इसलिए यह div के प्रत्येक उदाहरण के लिए क्लिक कहता है।


3

बेहतर विकल्प बंद का उपयोग होगा

<script>
function flash() {
  $("div").show().fadeOut("slow");
}
$("#bind").click(function() {
  $( "body" )
    .on("click", "#theone", flash)
    .find("#theone")
      .text("Can Click!");
});
$("#unbind").click(function() {
  $("body")
    .off("click", "#theone", flash)
    .find("#theone")
      .text("Does nothing...");
});
</script>

3

.On () और .one () के बारे में सभी सामान महान है, और jquery महान है।

लेकिन कभी-कभी, आप चाहते हैं कि यह थोड़ा और स्पष्ट हो जाए कि उपयोगकर्ता को क्लिक करने की अनुमति नहीं है, और उन मामलों में आप ऐसा कुछ कर सकते हैं:

function funName(){
    $("#orderButton").prop("disabled", true);
    //  do a bunch of stuff
    // and now that you're all done
    setTimeout(function(){
        $("#orderButton").prop("disabled",false);
        $("#orderButton").blur();
    }, 3000);
}

और आपका बटन ऐसा दिखेगा:

<button onclick='funName()'>Click here</button>

1
यह वास्तव में कई बार क्लिक करने वाले उपयोगकर्ता के मामले को हल करेगा, लेकिन ... मुझे उसी टाइमस्टैम्प के साथ कई क्लिक इवेंट मिल रहे हैं। वहाँ कोई रास्ता नहीं है कि मैं एक ही मिलीसेकंड में 3 बार क्लिक कर सकता हूं, भले ही मैं इस पर बहुत जल्दी था (और किसी तरह अनजान हूं कि मैं कितनी बार बटन दबा रहा हूं)।
jpaugh

2

यह विशेष घटना के कारण एक ही तत्व के लिए कई बार बाध्य होता है।

समाधान जो मेरे लिए काम किया है:

.die()विधि का उपयोग करके संलग्न सभी घटनाओं को मार डालो ।

और फिर अपनी विधि श्रोता को संलग्न करें।

इस प्रकार,

$('.arrow').click(function() {
// FUNCTION BODY HERE
}

होना चाहिए:

$('.arrow').die("click")
$('.arrow').click(function() {
// FUNCTION BODY HERE
}

2

हमें stopPropagation()क्लिक ट्रिगर्स ईवेंट से बचने के लिए कई बार आदेश देना होगा ।

$(this).find('#cameraImageView').on('click', function(evt) {
   evt.stopPropagation();
   console.log("Camera click event.");
});

यह DOM ट्री को बुदबुदाने से रोकता है, जिससे किसी भी अभिभावक को घटना की सूचना नहीं मिलती। यह विधि किसी भी तर्क को स्वीकार नहीं करती है।

हम प्रयोग कर सकते हैं event.isPropagationStopped() यह निर्धारित करने के लिए कि क्या इस पद्धति को कभी भी (उस ईवेंट ऑब्जेक्ट पर) कहा गया था।

यह विधि ट्रिगर के साथ शुरू होने वाली कस्टम घटनाओं के लिए काम करती है (), साथ ही यह भी बताएं कि इससे अन्य हैंडलर को चलने से पहले उसी तत्व पर नहीं रोका जा सकेगा।


2

मेरे मामले में मैं 'डेलिगेट' का उपयोग कर रहा था, इसलिए इनमें से किसी भी समाधान ने काम नहीं किया। मेरा मानना ​​है कि यह अजाक्स कॉल के माध्यम से कई बार दिखाई देने वाला बटन था जो कई क्लिक समस्या पैदा कर रहा था। समाधान एक टाइमआउट का उपयोग कर रहा था, इसलिए केवल अंतिम क्लिक को मान्यता दी गई है:

var t;
$('body').delegate( '.mybutton', 'click', function(){
    // clear the timeout
    clearTimeout(t);
    // Delay the actionable script by 500ms
    t = setTimeout( function(){
        // do something here
    },500)
})



1

.one केवल पृष्ठ के जीवनकाल के लिए एक बार फायर करता है

इसलिए यदि आप सत्यापन करना चाहते हैं, तो यह सही समाधान नहीं है, क्योंकि जब आप सत्यापन के बाद पृष्ठ नहीं छोड़ते हैं, तो आप कभी भी वापस नहीं आते हैं। उपयोग करने के लिए बेहतर है

$(".bet").on('click',function() 
{ //validation 
   if (validated) { 
      $(".bet").off('click'); //prevent to fire again when we are not yet off the page
      //go somewhere
    }
});

1

जब मैं इस मुद्दे से निपटता हूं, मैं हमेशा उपयोग करता हूं:

$(".bet").unbind("click").bind("click", function (e) {
  // code goes here
}

इस तरह मैं एक ही झटके में असंतुलित और विद्रोही हो गया।


0

https://jsfiddle.net/0vgchj9n/1/

यह सुनिश्चित करने के लिए कि घटना हमेशा केवल एक बार फायर करती है, आप Jquery .one () का उपयोग कर सकते हैं। JQuery एक सुनिश्चित करता है कि आपका ईवेंट हैंडलर केवल एक बार कॉल करे। इसके अतिरिक्त, आप अपने ईवेंट हैंडलर को एक क्लिक के साथ सब्सक्राइब कर सकते हैं जब आपने वर्तमान क्लिक ऑपरेशन की प्रोसेसिंग पूरी कर ली हो।

<div id="testDiv">
  <button class="testClass">Test Button</button>
</div>

...

var subscribeClickEvent = function() {$("#testDiv").one("click", ".testClass", clickHandler);};

function clickHandler() {
  //... perform the tasks  
  alert("you clicked the button");
  //... subscribe the click handler again when the processing of current click operation is complete  
  subscribeClickEvent();
}

subscribeClickEvent();


0

मेरे मामले में, onclick इवेंट कई बार फायरिंग कर रहा था coz मैंने एक जेनेरिक इवेंट हैंडलर तुलनात्मक रूप से बनाया था

  `$('div').on("click", 'a[data-toggle="tab"]',function () {
        console.log("dynamic bootstrap tab clicked");
        var href = $(this).attr('href');
        window.location.hash = href;
   });`

में परिवर्तित किया गया

    `$('div#mainData').on("click", 'a[data-toggle="tab"]',function () {
        console.log("dynamic bootstrap tab clicked");
        var href = $(this).attr('href');
        window.location.hash = href;
    });`

और स्थैतिक और गतिशील क्लिकों के लिए अलग-अलग हैंडलर भी बनाना है, स्टैटिक टैब क्लिक के लिए

    `$('a[data-toggle="tab"]').on("click",function () {
        console.log("static bootstrap tab clicked");
        var href = $(this).attr('href');
        window.location.hash = href;
    });`

0

मेरे मामले में मैंने *.jsएक <script>टैग में पृष्ठ पर एक ही फ़ाइल को दो बार लोड किया था , इसलिए दोनों फाइलें तत्व हैंडलर को तत्व में संलग्न कर रही थीं। मैंने डुप्लिकेट घोषणा को हटा दिया और इस समस्या को ठीक कर दिया।


0

एक अन्य समाधान मुझे यह मिला, यदि आपके पास कई कक्षाएं हैं और लेबल पर क्लिक करते समय रेडियो बटन के साथ काम कर रहे हैं।

$('.btn').on('click', function(e) {
    e.preventDefault();

    // Hack - Stop Double click on Radio Buttons
    if (e.target.tagName != 'INPUT') {
        // Not a input, check to see if we have a radio
        $(this).find('input').attr('checked', 'checked').change();
    }
});

0

मुझे गतिशील रूप से उत्पन्न लिंक के साथ यह समस्या आ रही थी:

$(document).on('click', '#mylink', function({...do stuff...});

मैं जगह पाया documentसाथ 'body'मेरे लिए समस्या का समाधान हो:

$('body').on('click', '#mylink', function({...do stuff...});


0

अनबिंड () काम करता है, लेकिन यह भविष्य में अन्य मुद्दों का कारण हो सकता है। हैंडलर कई बार ट्रिगर करता है जब वह दूसरे हैंडलर के अंदर होता है, इसलिए अपने हैंडलर को बाहर रखें और यदि आप उस हैंडलर के मूल्यों को चाहते हैं जो नेस्टेड था, तो उन्हें एक ग्लोबल वैरिएबल में असाइन करें कि यह आपके हैंडलर के लिए सुलभ होगा।



-1

कई माउस क्लिक ट्रिगर घटनाओं को एक से अधिक बार हैंडल करने के लिए नीचे दिए गए कोड ने मेरे चैट एप्लिकेशन में मेरे लिए काम किया। if (!e.originalEvent.detail || e.originalEvent.detail == 1) { // Your code logic }

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.