<div id="bb" onclick="aa()"></div>正常情况
若去掉onclick="aa()",改为$("#bb").click(function(){}),就老执行不了,最可能的原因是什么,还有怎么调试原因所在
你试试把div改成这样
<div id="bb">
<script type="text/javascript">
$("#bb").click(function(){alert("执行了")});
</script>
</div>
如果改成上面那样可以的话,就表示用你的方法注册click事件时,这个id是bb的div根本还没加载,你研究一下你这个div是什么时候加载的,再到合适的时机注册时间呗,不然再把多一些代码贴出来给大家帮着看看吧
jQuery(function($){
$('#bb').click(function(){
// .....
});
});
这样呢? 看了上面的回答, 感觉应该是你注册事件回调的时候, dom还没有出来
改成这样试试:jQuery("#bb").click(function(){})。
1.确认页面是否有其他报错
2.确认页面是否有jquery
3.确认页面是否有id为bb的标签
4.试试这样:$("#bb").click(function(){alert(1)})
我怎么记得是
document.getElementById("bb").onclick = function(){
alert(1);
}
根据经验,八成是在事件绑定上出了问题。
看看浏览器的 Console 有没有报错,根据错误来判断,一般会有两种可能:
-
$("#bb").click(function(){})
你的这段代码放置在主体文档(指
body)之前,事件绑定在了一个还未生成的元素上; - jQuery 未引入。
要是没发现报错的话,那就活见鬼了~
确认是否有两个#bb
,大于1个的话,只有第一个能执行,后面的都不会执行~ 而且不会报错
要是使用 ajax
添加的 div
就需要 使用(on、live
)了