js修改id后无法触发事件-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

js修改id后无法触发事件

2016-05-31 09:13:32 1554 1

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

但是这时候

$('#appointForm').on('click','#batch_secondary_search',function(){}
无法触发

触发的还是

$('.modal-footer #secondary_search').on('click',function(){
这是为啥

取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 19:21:16
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="script/jquery_2_1_3/jquery-2.1.3.min.js"></script>
        <script>
            $(function(){
    
                $('.modal-footer #secondary_search').on('click',function(){
                    console.log('#secondary_search click');
                });
    
                $('#appointForm ').on('click','#batch_secondary_search',function(){
                    console.log('#batch_secondary_search click');
                });
    
                $('#changeButton').on('click',function(){
                    console.log('changeButton');
                    $('#secondary_search').attr("id","batch_secondary_search");
                });
            });
        </script>
    
    </head>
    <body>
    <from id="appointForm" onsubmit="javascript:return false;">
        <div class="modal-footer">
        <button id="secondary_search">ButtonA</button>
    
        </div>
        <button id="changeButton">Change[ButtonA]ID</button>
    </from>
    </body>
    </html>

    在修改ID前点击按钮#secondary_search(ButtonA),将输出 #secondary_search click
    点击#changeButton按钮,修改原#secondary_search(ButtonA)按钮的ID为batch_secondary_search后,
    再点击ButtonA,将输出#secondary_search click和#batch_secondary_search click

    我们看到原绑定到ButtonA事件一并被触发了,这是因为$('.modal-footer #secondary_search').on('click'执行后将click的回调函数绑定到ButtonA这个DOM元素上了,只要这个DOM元素存在,无论其属性怎么变化,只要可被点击,click回到函数就会被执行

    $('#appointForm ').on('click','#batch_secondary_search'事件添加到#appointForm这个DOM元素上,利用事件冒泡机制,当#appointForm这个DOM元素下的子元素发生点击事件后,回去判断当前冒泡到的DOM元素是否符合#batch_secondary_search这个selector的要求,如果符合,绑定的事件回调函数就被执行,如果不符合,就会跳过这个DOM元素~~~

    0 0
相关问答

11

回答

在阿里云上安装和运行Node.js全功略

ycwong 2013-09-18 15:17:30 64395浏览量 回答数 11

19

回答

【分享】如何提高网站的打开速度?

enj0y 2012-11-17 14:35:22 56990浏览量 回答数 19

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157677浏览量 回答数 145

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 93757浏览量 回答数 28

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 147226浏览量 回答数 22

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 146033浏览量 回答数 31

23

回答

【云服务器分享】网站访问速度快才是硬道理

dreamdoo 2012-10-15 10:15:02 85360浏览量 回答数 23

13

回答

【云服务器分享】如何节省网站流量

dreamdoo 2012-10-15 10:36:09 80456浏览量 回答数 13

14

回答

对象存储oss【问答合集】

我是管理员 2018-08-03 14:54:02 67712浏览量 回答数 14

3

回答

Nginx—owncloud安装记事

寒喵 2014-06-07 23:24:41 48725浏览量 回答数 3
2736
文章
6591
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载