関数を修正し、1 つの要素のイベントを保存して削除し、再インストールしてください。
どこに問題があるのか わかりません。関数は要素のイベントを削除するだけで、復元しません。
修正を手伝ってください。
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
}
}