删除附加到元素以外的所有事件

时间:2013-12-12 11:33:53

标签: javascript jquery

如何使用jquery删除附加到DOM元素的所有事件?

例如,我有一个下拉列表<select>,它附加了各种事件(例如点击,双击,更改等)。我想要实现的是只应用change事件并删除所有其他事件。我怎么能实现这个目标?

P.S 我不知道附加到元素的事件

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

将删除附加到foo元素的所有事件

你也可以这样做:

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

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

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

答案 2 :(得分:0)

可能你可以使用类似的东西:

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

我不知道,我不是专家,但我想这会奏效。

答案 3 :(得分:0)

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

DEMO

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