これは純粋に理論上の質問ですので、私は代替ソリューションを探していません。jQueryでDOMイベントを再バインドする
$(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);
});
});
参照:
あなたは、すべてのイベントハンドラ情報を格納するために使用され.data('events')
オブジェクトにアクセスすることができます。この
var defaultHandler = $("#test").click;
$('#test').unbind('click');
$('#test').bind('click', defaultHandler);
「デフォルトハンドラ」とはどういう意味ですか? jQueryイベントハンドラが存在しない場合にブラウザが実行するデフォルトのアクションですか? – lonesomeday
いいえ - 「クリック」を解除することで失われるものは何でも – jcuenod