javascript - jQuery 委托(delegate)和 PreventDefault()

标签 javascript jquery

以下 PreventDefault() 实现不起作用。

我收到错误“未捕获的类型错误:未定义不是函数。我可以在调试器中看到“ev”,它看起来像一个完全成熟的事件。

我正在尝试分解我正在调试的另一件事的代码。

HTML:

<body>
<a data-action="custom-modal" href="test_modal_content1.html">Test 1</a>
<a data-action="custom-modal" href="test_modal_content2.html">Test 2</a>
<div class="modal modal-6 fade" id="modal-form" role="dialog" arialabelledby="modalFormLabel" aria-hidden="true">
<div class="modal-content"></div>
</div>
</body>

脚本:

function TestModal() {}

TestModal.prototype.toggleModal = function () {
  $('body').delegate('a[data-action=custom-modal]', 'click', function (ev) {
    $(ev).preventDefault();
  });
};

var testModal = new TestModal();
testModal.toggleModal();

参见fiddle .

谢谢

最佳答案

只需使用

 ev.preventDefault();

而不是

 $(ev).preventDefault();

关于javascript - jQuery 委托(delegate)和 PreventDefault(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25173990/

相关文章:

javascript - innerHTML 仅适用于某些功能

javascript - 在客户端更改文本框值并在服务器端读取

jquery - 如何让 jQuery 继续检查稍后可能创建的元素?

jquery - 在 jQuery 中获取动态元素的状态

javascript - 恢复取消选中复选框

javascript - 扫雷器发现空白方 block

javascript - 如何使用纯javascript函数而不使用jquery在div内向左或向右滚动?

javascript - 如何更改 ui 控件上的 map 图 block 类型

javascript - 我可以将两个 JavaScript 脚本放入一个 .js 文件吗?

jquery - 使用jquery从项目列表中选择多个项目,而不使用复选框