javascript - js修改id后无法触发事件
迷茫
迷茫 2017-04-10 17:28:53
[JavaScript讨论组]

比如一个按钮的id是secondary_search
因为某个事件我把这个按钮的id换成了batch_secondary_search

但是这时候

$('#appointForm').on('click','#batch_secondary_search',function(){}

无法触发

触发的还是

$('.modal-footer #secondary_search').on('click',function(){

这是为啥

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(5)
黄舟

id值只是用于jq选择器, 也就是说,对于jq来说, 是根据这个id进行点击事件绑定, 你改变id值的时候,click事件已经绑定了, 那这id存在不存在,修改不修改, click事件都已经存在该元素上了

PHP中文网
$('#batch_secondary_search').on('click',function(){}`请输入代码

可以直接给你所要添加的ID追加点击事件,为何还用到事件委托?

天蓬老师

应该是在修改id之前,就已经绑定$('.modal-footer #secondary_search')的事件了,因为执行顺序的问题,是绑定click在前,修改id在后,所以依然能够触发。

伊谢尔伦

你是在什么场景下要用on来绑定事件呢?不能直接使用

$("#batch_secondary_search").click(function{....});

$("#batch_secondary_search").bind("click",function(){....});
黄舟

首先呢,第一个代码,
$('#appointForm').on('click','#batch_secondary_search',function(){},
给id为appointForm的注册事件,点击的时候如果点到了子元素带有id为batch_secondary_search就触发函数,所以你改了子元素的id,那点击的时候找不到这个id的子元素啦,不会触发了;
第二个代码,$('.modal-footer #secondary_search').on('click',function(){,
给.modal-footer #secondary_search注册事件,所以已经注册了,你即使改了id也还是注册了事件,点击还是触发

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号