在第一次单击后更改元素的onclick处理程序
Changing onclick handler for an element after first click
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之后交换onclick方法。我只是没有取得任何成功,这似乎是某种关闭损失,或者其他什么。我可以使用jQuery。
有两种方法可以做到这一点,两种方法都是使用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:
http://jsbin.com/fekuq/1/edit?html,js,输出
相关文章:
- 如何使用onClick处理程序在React组件中创建链接
- 如何获取变量's设置元素时的文字值's onclick处理程序
- 从onclick处理程序获取URL
- onClick处理程序未向ReactDOMServer.renderToString注册
- React组件onClick处理程序不工作
- 如何找到元素'的onClick处理程序实际上是与jQuery一起添加的
- 更改在页面加载后动态添加的元素的 onclick 处理程序
- Javascript:在为动态创建的对象设置 onClick 处理程序时避免 eval()
- 从 HTML 元素(如 onclick 处理程序)调用 RequireJs 模块中的方法
- 带有 jquery 的 Onclick 处理程序
- D3 onClick 处理程序在执行时似乎具有错误的范围
- 在onclick处理程序中修改目标url
- 使用Jquery从另一个元素委派一个元素的onclick处理程序
- 动态创建OnClick处理程序Jquery
- className的存在阻止调用onClick处理程序
- IE在添加到onclick处理程序时从缓存中获取脚本(动态添加)
- 在动态添加的元素的onclick处理程序中引用JavaScript函数
- reactjs onClick处理程序未附加在Windows 8和7上的IE11上
- 我在表的每一行中都有一个按钮:OnClick 处理程序如何判断它是从哪一行调用的
- 传递一个函数表达式,用作按钮的onclick处理程序