当前位置:Gxlcms > JavaScript > 为什么jquery使用click绑定的事件无效?

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

时间:2021-07-01 10:21:17 帮助过:17人阅读

jquery使用click绑定的事件无效

$(this).children(":last").prev().after("<div class='bounty-add'><a target='_blank' href='bounties.php#/p=add&XID=" + playerId + "'>[Bounty]</a></div>"); 
$(this).children(":last").prev().after("<div class='info-add'><a href='#'>[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绑定的事件无效?的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行