4
這純粹是一個理論問題,所以我沒有尋找替代解決方案。用jQuery重新綁定DOM事件
有獲取默認處理程序做這樣的事情
var defaultHandler = $("#test").click;
$('#test').unbind('click');
$('#test').bind('click', defaultHandler);
這純粹是一個理論問題,所以我沒有尋找替代解決方案。用jQuery重新綁定DOM事件
有獲取默認處理程序做這樣的事情
var defaultHandler = $("#test").click;
$('#test').unbind('click');
$('#test').bind('click', defaultHandler);
的一些方法,您可以訪問.data('events')
對象,它是用來存儲所有的事件處理程序的信息:
$(document).ready(function() {
var $test = $('#test');
$test.bind('click', function() {
alert('default handler');
});
var storedClick = $test.data('events').click[0].handler;
$test.unbind('click');
$('#restore').click(function() {
$test.bind('click', storedClick);
});
});
見這個動作:http://www.jsfiddle.net/76GPF/
記住,events object
持有Arrays
,所以在真實世界中你應該存儲完整的數組信息。在這個例子中,我只保存了第一個處理程序。
你是什麼意思的「默認處理程序」?在沒有任何jQuery事件處理程序的情況下,瀏覽器將採取默認操作? – lonesomeday 2011-01-18 21:26:18
沒有 - 無論是通過解除'點擊'丟失 – jcuenod 2011-01-18 21:28:33