javascript
  • jquery
  • 2012-01-19 65 views 0 likes 
    0

    我在使用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 %>" 
    
    +1

    事件绑定在哪里?你期望发生什么? –

    +0

    你确定$('#tdMinPriceOnNonStop0')是否是正确的ID? – Steve

    +0

    Ya ...正确的ID – Shivi

    回答

    1

    这不是强制性的,但你要提供你想解除绑定的处理程序:

    function doStuff(){ 
        //doing stuff 
    } 
    
    $('#tdMinPriceOnNonStop0').bind("click",doStuff); 
    
    //then 
    $('#tdMinPriceOnNonStop0').unbind("click",doStuff); 
    
    +0

    你不需要。 –

    +0

    你说得对,只是在文件中阅读它。我会更新我的答案。 Thx –

    +0

    我不能这样做,因为需要中继器内的服务器端总值...所以我只需要解除绑定...请看上面的例子.. – Shivi

    0
    您可以在以前只有附带 unbind()处理

    bind()
    (使用jQuery 1.7+应分别使用off()on()

    如果不是这种情况只是单纯的破坏平原该元素定义的任何点击事件处理的JavaScript

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

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

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

    相关问题