以下是我的代码片段:
$(".item").click(function () {
alert("clicked!");
});
我的(在假设上;实际上它要复杂得多)我的页面上有以下内容:
<a href="#" class="item"><img src="1.jpg" /></a>
但是,当我点击图片时,我没有收到提醒。
我的错误是什么?
答案 0 :(得分:5)
您的选择器实际上是否匹配任何东西?尝试使用jQuery调试插件(http://jquery.glyphix.com/)并执行此操作:
$(".item").debug().click(function() {
alert("clicked!");
});
.debug()会记录与Firebug控制台匹配的任何内容(你使用的是firebug,对吧?:-))而不会“破坏链”,这样你就可以像这样内联使用它。
如果结果不正确,浏览器导航到“#”可能会出现问题,然后才能显示警报。尝试在事件对象上使用.preventDefault()方法来防止此行为:
$(".item").click(function(evt) {
evt.preventDefault();
alert("clicked!");
});
答案 1 :(得分:4)
第一个问题 - 您是否添加了要动态点击的元素?如果是, 你应该使用直播活动,因为这会照顾动态创建的元素。
答案 2 :(得分:0)
使用bind。
$(“。item”)。bind(“click”,function(e){...});
答案 3 :(得分:0)
修改选择器?
$(“。item&gt; img”)
答案 4 :(得分:0)
在添加上下文菜单jquery插件后,我最近遇到了这个问题。插件绑定到正文的click事件,然后取消绑定click事件 - 它似乎删除了所有元素的click事件的所有绑定。也许建议关闭插件或检查你是不是自己解锁单击父元素。
答案 5 :(得分:0)
您发布的代码是正确的,所以我怀疑还有其他事情没有考虑过。
首先,如果某处出现错误(即使不是那段确切的代码),可能会导致它停止工作。在此行之后发出警报以检查它是否正常运行。
检查没有其他元素捕获事件并阻止其传播。这在过去曾经让我感到困惑......如果还有其他任何事情处理其中包含stopPropagation()
或return false
的点击,那可能就是问题所在。
答案 6 :(得分:0)
我发现的一件事(虽然只有链接到其他地方)是添加返回false;可能有帮助,如果它只是关闭锚而不是评估警报。我真的不能说为什么会出现这种情况,但这是我最近发现类似问题的解决方案。