簡體   English   中英

刪除除一個元素外的所有事件

[英]Remove all the events attached to an element except one

如何使用jquery刪除除DOM元素之外的所有事件?

例如,我有一個下拉<select>並附加了各種事件(例如單擊,雙擊,更改等)。 我要實現的只是將change事件應用於它,並刪除所有其他事件。 我該如何實現?

PS我不知道該元素附帶的事件

$( "#foo").unbind( "click" );

填寫其余部分。 http://api.jquery.com/unbind/

$( "#foo").off();

將刪除附加到foo元素的所有事件

您也可以:

 $( "#foo").off("click dblclick");

然后可以僅在onchange事件上附加foo元素

$("#foo").on("change",function(){
   //Do stuff here
})

可能您可以使用類似以下的內容:

$.(selector).on('*',function(e)
{
 if(e.which='value_for_your_event_eg._14_for_tab')
 return true;
 else
 return false;
})

我不知道,我不是專家,但是我想這會起作用。

$._data(elem,'events')不是公開支持的方法:

演示

$.each($._data($('select').get(0),'events'),function(k){
    if(k !== "change")
        delete $._data($('select').get(0),'events')[k];
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM