div.onclick = function(data, dom) {
return function() {
if (data.seenAlready == true) { // HACK
$(this).children().toggle();
return;
}
recursiveSearch(data, dom);
// after this onclick, I want to assign it to a toggle like function. no clue how to do it.
}
}(child, mycontainer.appendChild(div));
我在第一次点击dom元素后尝试交换onclick方法。我没有取得任何成功,似乎有某种关闭损失,或者其他什么。我使用jQuery很好。
答案 0 :(得分:0)
您有两种方法可以执行此操作,两种方法都是使用jQuery
函数:
1)使用one
API方法 - 这只会运行一次。您将单击它一次,然后您选择自己的第二个处理程序,第一个处理程序将不会再次触发,例如。
$(myselector).one(function(){
$(this).click(myotherhandler);
});
以下是此API http://api.jquery.com/one/的链接。
2)您可以选择以下方式来替换事件处理程序。
$(myselector).click(function(){
$(this).off();
$(this).click("secondhandler");
});
这将关闭第一个处理程序,并将触发第二个处理程序
检查这个jsbin: