当我有这个时,代码没有在.click上运行:
$(".cancel").click(function() {
alert("got here");
$(this).closest(":dialog").dialog("close");
});
<a class="cancel" href=""><img src="images/cancelButton.gif" border="0" /></a>
它必须是愚蠢的东西,但我看不到它。
答案 0 :(得分:7)
我会假设您将代码包装在$(document).ready( function () { ... });
?
$(document).ready( function () {
$('.cancel').click( function(e) {
alert('here!');
e.preventDefault(); // prevents click from following through
});
});
答案 1 :(得分:1)
在点击事件结束时添加return false:
$(".cancel").click(function() {
alert("got here");
$(this).closest(":dialog").dialog("close");
return false;
});
答案 2 :(得分:0)
如果href=""
代替href="#"
并不意味着它实际上会在点击时重新加载页面?
答案 3 :(得分:0)
你通过javascript调用放置onclick事件的任何地方,如果你添加return false,那么默认行为(没有onclick事件会发生什么)将被忽略。
所以在这种情况下,return return false会阻止浏览器跳转到链接锚点。
修改强>
下面的公平评论 - 看了jquery.com,它说
从处理程序返回false等同于在事件对象上调用.preventDefault()和.stopPropagation()。
答案 4 :(得分:0)
有几个人说加回假;到你的点击处理程序。您应该在事件类上使用preventDefault方法,如下所示:
$(".cancel").click(function(event) {
event.preventDefault();
alert("got here");
$(this).closest(":dialog").dialog("close");
});
确保将事件传递给处理函数。这是首选的jQuery方式。我也总是将preventDefault()
作为处理程序方法中的第一件事,但我认为这不会产生影响。