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