首页  >  文章  >  web前端  >  为什么jquery使用click绑定的事件无效?

为什么jquery使用click绑定的事件无效?

黄舟
黄舟原创
2017-06-27 10:14:242286浏览

jquery使用click绑定的事件无效

$(this).children(":last").prev().after("<div class=&#39;bounty-add&#39;><a target=&#39;_blank&#39; href=&#39;bounties.php#/p=add&XID=" + playerId + "&#39;>[Bounty]</a></div>"); 
$(this).children(":last").prev().after("<div class=&#39;info-add&#39;><a href=&#39;#&#39;>[Refresh]</a></div>");        
$("div.bounty-add").css(addStyle);
$("div.info-add").css(addStyle);
         
         
$(this).children(":last").prev().children("a").click(function() {
   alert("Hello");
});

相关基本代码如上,Refresh这个a元素可以顺利获取,但就是绑定的click事件无效,在chrome“开发者工具”里"Elements"的“Event Listeners”也找不到有效绑定。
上边基本代码所添加的dom都有效,外层是两个each循环,不过感觉应该没啥影响,所有代码都能顺利执行,包括绑定这一步。就是执行完毕之后去点那个a元素无效,也找不到绑定了这个function。。。。。。。

$(this).children(":last").prev().children("a").on("click",function() {
   alert("Hello");
});

on我也试过,一样无效,好像这两个基本一样?
因为a元素本身就有可点击属性,所以点击之后,还是会响应其原始的事件,比如href=‘#’,就会在地址栏最后加一个#。。。。不知道会不会是因为原始事件覆盖了后加的事件?。。。。。

你之前的绑定是

$(this).children(":last").prev().children("a").on("click",function() {
   alert("Hello");
});

与普通click绑定一样
试试这样绑定

$(this).on("click",".info-add a",function() {
   alert("Hello");
});

你的元素是动态生成的吗?
如果是的话用live或者delegate绑定

live jquery1.9就移除了啊,现在倒不是找不到元素或者无法绑定,而是绑定了之后无效。
我直接把a改成p元素,click listeners里面也有,但是那个alter("hello");怎么样都无法触发。。。。。。

首先,使用firebug查看是否页面出现了脚本错误
再次,确认你的代码找到了a元素
最后。你可以使用

$(document).on("click",".info-add",function(){
alert("ok")
})

如果再不行,请发完整的代码给我

以上是为什么jquery使用click绑定的事件无效?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn