2017-04-25 2 views
1

Ich habe Klick-Ereignisse in jquery wieist es eine Möglichkeit, aus klicken Sie auf Ajax geladen Element

$("#elementId").off("click").on("click",function (event) { 
    // some code 
    event.preventDefault(); 
}); 

In diesem Fall i off bin mit und dann on klicken. Und hier ist ein anderer Weg im Falle eines Ajax geladenen Elements.

$(document).on("click", "#elementId",function (event) { 
     //some code 
     $(this).unbind("click"); 
     }); 

Ich kam gerade zu wissen, dass

1. gibt es eine Möglichkeit, um off Klick zusammen mit on Klick als in der ersten case.However zweite arbeitet auch gut.

2.Was ist der Unterschied zwischen beiden Ansätzen? $("#elementId").off("click").on("click",function (event) und $(this).unbind("click"); innerhalb klicken.

Antwort

0

.off() kann auf folgende Weise geschrieben werden -

$("body").off("click", "p", foo); 

Ist dies Ihre erste Frage beantwortet. So könnte man so etwas tun,

$(document).off('click', '#elementId').on('click', '#elementId',function (event) { 
    //some code 
    $(this).unbind('click'); 
}); 

Bitte lesen Sie mehr darüber in der Dokumentation - http://api.jquery.com/off/#off-events-selector

Um Ihre zweite Frage zu beantworten, das erste Stück Code entfernen Sie alle bestehenden Event-Handler und dann bringen neue Handler. Der zweite Codeabschnitt lässt den Ereignishandler nur einmal auslösen.

Auch anstelle von .unbind, würde ich vorschlagen, dass Sie .off selbst verwenden, da .unbind veraltet ist. Sehen Sie hier - http://api.jquery.com/unbind/

Demo für Ihre zweite Frage hier - https://codepen.io/anon/pen/KmgbQM

Verwandte Themen