如何使用jquery删除附加到DOM元素的所有事件?
例如,我有一个下拉列表<select>
,它附加了各种事件(例如点击,双击,更改等)。我想要实现的是只应用change
事件并删除所有其他事件。我怎么能实现这个目标?
P.S 我不知道附加到元素的事件
答案 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')
不是公开支持的方法:
$.each($._data($('select').get(0),'events'),function(k){
if(k !== "change")
delete $._data($('select').get(0),'events')[k];
});