event.preventDefault()不起作用

时间:2015-08-04 16:13:03

标签: javascript jquery html

我有按钮具有onclick功能

<div id="canvas">   
  <button onclick="document.location.href='hello.php'">Go</button>
</div>  

现在我想停止这个重定向到onclick的{​​{1}}事件,所以我编写了以下jQuery函数

hello.php

这不起作用所以我添加了$("#canvas").on('click', 'button', function(event) { event.preventDefault(); }); ,但它仍然无效。

return false

您可以在Jsfiddle

查看

注意:我不想删除按钮

2 个答案:

答案 0 :(得分:6)

正确的解决方案是首先从HTML中删除onclick

假设不可能,您可以在事后删除它:

$("#canvas button").first().prop("onclick", null);

清除元素上的onclick属性,删除onclick属性设置的处理程序。 (如果按钮根本不存在,那就是无操作。)

值得注意的是,如果button位于表单中,它现在会提交表单,因为onclick不会将用户带离页面。 (由于button的默认typesubmit。)

答案 1 :(得分:2)

您应该只使用removeAttr jQuery方法:

$('#canvas button').removeAttr('onclick');