2013-03-11 57 views
2

假設我有一個組件,inputType =「text」,id =「cmp」;刪除特定事件

在js文件,

$("input[type='text']").bind('keypress', function(e) { 
//Case 1 
}); 

在我的JSP文件,

$("#cmp").keypress(function() { 
    //Case 2 
}); 

現在我需要刪除只有一個按鍵事件。 是否可以刪除從js文件註冊的id =「cmp」的按鍵事件。 但我們不應該刪除從jsp文件註冊的事件。

說明: 根據我的要求,我無法更改.js文件。

回答

0

可以使用jquery方法的off移除事件Jquery OFf

的關閉()方法去除附着用。對事件處理程序()。 欲瞭解更多信息,請參閱該頁面 上關於委託和直接綁定事件的討論。通過提供事件名稱,命名空間, 選擇器或處理函數名稱的組合,可以在 元素上刪除特定的事件處理程序。當給出多個過濾參數 時,提供的所有參數必須與要刪除的 事件處理程序匹配。

$('#cmp').off('keypress'); 
0

使用off()

關:刪除事件處理程序。

$('#cmp').off('keypress'); 
0

你將要使用取決於事件最初是如何連接並使用的是什麼版本的jQuery無論是.unbind().off()jQuery的1.7+)。

// Prior to jQuery 1.7 
$("#cmp").unbind("keypress"); 

// jQuery 1.7+ 
$("#cmp").off("keypress"); 

如果你可以修改原來的位置,你在哪裏綁定的事件處理程序,您可能還可以使用event namespaces只刪除一個特別命名的事件。

// Original binding 
$("#cmp").on("keypress.someName", function() { 
    ... 
}); 

// Unbinding 
$("#cmp").off("keypress.someName"); 

EXAMPLE