收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 2343|回复: 6

[jquery] jQuery中on()的多次执行操作问题如何解决?

[复制链接]
发表于 2016-12-8 22:22:19 | 显示全部楼层 |阅读模式
非常奇怪的一件事。
请见运行代码

由于我的权限不能发URL,所以jquery引用文件请先手动加上h-t-t-p-:-/-/

 提示:您可以先修改部分代码再运行



点击【按钮】后,会生成一个button,然后点击button,这个button及所在的div就会remove掉,并弹出提示框一次。
再次点击【按钮】后,最后居然会弹出两次提示。
点击N次,就会弹出N次,这怎么解决?我只想弹一次呀!!!

我有解决方法,就是把function tanchu()中的on绑定改为直接绑定,但是,为何会出现这种情况呢?为何function中只能用一次绑定。而不能用目标元素的祖辈元素上委托绑定?
 楼主| 发表于 2016-12-9 20:44:10 | 显示全部楼层
怎么还在审核中??????
回复 支持 反对

使用道具 举报

发表于 2016-12-10 00:04:02 | 显示全部楼层
把事件绑定挪到外面去。
你这个on()本身就是事件委托,每点击一次就委托一次。
QQ截图20161210000302.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-10 13:52:15 | 显示全部楼层
jianwang19 发表于 2016-12-10 00:04
把事件绑定挪到外面去。
你这个on()本身就是事件委托,每点击一次就委托一次。

我知道呀,点击一次就委托一次,可为什么后面会弹出N次? 我只点击一次呀。你的意思是这个委托可以叠加?只要我不刷新页面,只要我点一次,这个委托事件就+1????然后就会多执行一次alert?
回复 支持 反对

使用道具 举报

发表于 2017-1-4 02:55:17 | 显示全部楼层
嵌套鼠标事件先要解绑

$(document).off("click").on("click")
回复 支持 反对

使用道具 举报

发表于 2017-1-4 10:14:23 | 显示全部楼层
因为你是前1个click事件触发后才去绑定后1个click事件。

所以每执行1次前者,则后者就会多绑定1次

解决方法1,不要把后者放在tanchu()事件中,放外面。(强烈推荐这个)

解决方法2,每执行1次后者,对自身click事件执行一次清除。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-21 13:22:28 | 显示全部楼层
abaddonpoet 发表于 2017-1-4 10:14
因为你是前1个click事件触发后才去绑定后1个click事件。

所以每执行1次前者,则后者就会多绑定1次

我明白了,非常感谢你的解答,时间过去这么久才回复你,抱歉
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-9-28 05:13 , Processed in 0.124687 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表