javascript
  • jquery
  • 2012-01-19 61 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:...」)。

    相關問題