javascript - event.preventDefault() 不工作

标签 javascript jquery html

我有一个有点击功能的按钮

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

现在我想停止重定向到 hello.phponclick 事件,所以我编写了以下 jQuery 函数

$("#canvas").on('click', 'button', function(event) {
  event.preventDefault();
});

这没有用,所以我添加了一个 return false 但它仍然没有用。

$("#canvas").on('click', 'button', function(event) {
  event.preventDefault();
  return false;
});

您可以在Jsfiddle 查看它

注意:我不想删除按钮的onclick

最佳答案

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

假设这是不可能的,你可以在事后删除它:

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

这会清除元素上的 onclick 属性,从而删除由 onclick 属性设置的处理程序。 (如果按钮根本不存在,则为空操作。)

可能值得注意的是,如果 button 在表单中,它现在将提交表单,因为它的 onclick 不会让用户离开页面. (因为 button 的默认 typesubmit。)

关于javascript - event.preventDefault() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31814282/

相关文章:

javascript - 无法在从另一个函数调用它的函数中设置变量

javascript - Angular 输出不起作用 - instance[output.propName].subscribe 不是函数

javascript - CRM 2013 中的可编辑 GridView

jquery - 如何仅将 nth-child 或 nth-of-type 应用于可见元素?

javascript - 在 Chrome 中设置输入文件文本颜色时出现问题

html - Div的悬停倾斜

javascript - HTML5 Input datetime-local 跨浏览器获取日期对象

javascript - 动态加载js模块并提供对内部函数的即时访问

javascript - 动画 jQuery 状态不成立

javascript - jQuery 复选框自动禁用和重新启用