javascript - 为什么第二个click运行不了啊,第一个运行没问题,第二个点了完全没反应
高洛峰
高洛峰 2017-04-11 12:50:54
[JavaScript讨论组]

效果,替换都可以,但是第二个click就是运行不了

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(12)
PHP中文网

改为

$('body').on('click', '#hideButton', function(){
    //此处省略
})

因为你的idhideButton是后来加上去的,绑定时是不存在id 为hideButton的元素

天蓬老师

直接绑定到body上就行了 $('body').on('click','#hideButton', function(){

});

怪我咯

1、你把attr改成prop
2、你在绑定click listener函数的时候还没有产生id为hideButton的元素。

PHPz

因为在js执行的时候$('#hideButton')这个选择器在DOM上找不到.这种形式不是动态的.
改为:

$('#hideButton').on('click',function(){
    alert("111");
})
这种形式是动态的选择器

或是用类标签来标识

$('.hideButton').on('click',function(){
    alert("111");
})
PHP中文网

试试时间委派

天蓬老师

试试事件委托

ringa_lee

动态生成选择器,需要$("body").on("click",'#hideButton',function () {

        alert(1);
    })
ringa_lee

事件委托,你在给第二个#name 加事件的时候,选择器其实是找不到这个元素的, 因为你的id是动态添加上去了

PHPz

.click()绑定需要已经存在的元素,因为你的id="hideButton"是后来才加的,原来的DOM结构是没有的,所以绑定不了。你可以用事件委托,$('body').on('click', '#hideButton', function(){//点击时要执行的}),作用是把click绑定到body上,当触发事件时会在body里找到"#hideButton"作为触发的对象

PHPz

.click 改成 .on("click",function(){.....}) 用一下事件委托 试试

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

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