請幫助修復我的功能,存儲一個元素的事件並刪除它們,然後重新安裝;存儲和恢復事件處理程序
我不知道問題出在哪裏,函數只會刪除元素的事件而不會恢復。
請幫助解決。
HTML
<a href="#" id="a">a</a>
<a href="#" id="b">b</a>
JS
$("#a").hover(function(){alert("test")});
$("#b").click(function(){
Test_Handle('#a');
}
function Test_Handle(id) {
target = $(id);
if($.hasData(target.get(0))){ // if the elment has event || target = element
target[0].event_name = [];
target[0].event_handler = [];
events = $._data(target.get(0), 'events'); // take all events of the element
$.each(events, function(event_name, event_handler){
target[0].event_name.push(event_name);
target[0].event_handler.push(event_handler);
}); //store the events
target.off(); // delete the events
}else{ // has the elment no event
for(var i=0; i < target[0].event_handler.length; i++){
target.on(target[0].event_name[i], target[0].event_handler[i]);
} // re-store the events
target[0].event_name = [];
target[0].event_handler = []; //reset
}
}
是什麼'option'? –
我很抱歉,修正。 – Till