Javascript 委托(delegate)和 numeric() 函数

标签 javascript

我的网站在 DOM 上有很多动态内容。如何委托(delegate) numeric() 函数?

我知道我必须做这样的事情:

$(document.body).on('.js-numeric', 'keydown' (change etc.) function() {});

但我不确定如何插入 numeric() 函数。如果我想对静态内容使用数字函数,它可以正常工作,如下所示:

$(".js-numeric").numeric();

最佳答案

如果您的元素位于 body 标记中,您可以执行以下操作:

$(document.body).on('keydown', '.js-numeric', function() {})

你交换了参数,如果你 read the docs你可以看到:

.on( events [, selector ] [, data ], handler )

选择器之前获取事件,而不是像您现在那样采取相反的方式。

如果您阅读我上面的代码片段比您编写的代码更符合逻辑(不是我编写了更清晰的代码,而是 jQuery 开发人员考虑了这些事情:))

这会将 keydown 事件从 document.body 委托(delegate)给任何动态添加的 .js-numeric 元素。

如果你想在已经被 keydowned 的元素上调用 .numeric() ,那么你可以这样写:

$(document.body).on('keydown', '.js-numeric', function() {
    // $(this) is the element that triggered the event
    $(this).numeric();
})

关于Javascript 委托(delegate)和 numeric() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34155126/

相关文章:

javascript - 基于产品类型的 WooCommerce “ADD TO CART” 按钮旁边的自定义按钮

javascript - ng Infinite Scroll、Bootstrap 3 和 AngularJS 的高度问题

javascript - 为什么我的复选框不能通过 id 来检查

javascript - AngularJS 绑定(bind)在 <img> 标签的 'src' 属性中

javascript - 复制/克隆 Javascript 对象

javascript - Mongo 检查文档是否已存在

javascript - 为什么 ~5 === -6 在 JavaScript 中?

javascript - react 还原: having direct callbacks into presentation elements

javascript - JQuery .load() 没有添加到 DOM?

javascript - 将项目附加到 JSON 对象中的列表的最佳方法?