使用JQuery解除绑定事件

时间:2012-01-19 09:09:32

标签: javascript jquery

我在使用JQuery解除绑定事件时遇到问题。

$(document).ready(function() {
    $('#tdMinPriceOnNonStop0').unbind("click");
});

它不起作用..

<td class="tddat matrixCellHt" align="center" onclick='javascript:DoHighlighting("tdMinPriceOnNonStop",<%#Container.ItemIndex%>);FilterResults("SingleAirlineParticularStop","0&<%#((string)DataBinder.Eval(Container.DataItem, "AirlineDisplayName"))%>")'  id="tdMinPriceOnNonStop<%# Container.ItemIndex %>"

3 个答案:

答案 0 :(得分:1)

这不是强制性的,但你应该提供你想解开的处理程序:

function doStuff(){
   //doing stuff
}

$('#tdMinPriceOnNonStop0').bind("click",doStuff);

//then
$('#tdMinPriceOnNonStop0').unbind("click",doStuff);

答案 1 :(得分:1)

去寻找

$('#tdMinPriceOnNonStop0').removeProp("onclick").removeAttr("onclick");

因为事件处理程序直接存储在元素的属性中,而不是存储在jQuery的$ .data对象中(jQuery存储其所有处理程序),所以不能使用jQuery的unbind方法(removeProp删除已编译的处理程序.removeAttr不是严格的必要的,但它也删除了实际属性(字符串“javascript:...”)以获得更大的一致性。

答案 2 :(得分:0)

你可以unbind()之前只附加bind()的处理程序(使用jQuery 1.7+,你应该分别使用off()on()

如果这不是场景,只需简单地销毁在普通javascript中为该元素定义的任何点击处理程序

$(document).ready(function() {
   document.getElementById('tdMinPriceOnNonStop0').click = function() { };
});