我试图在wordpress中单击带有jquery的类。这是我的代码
import $ from 'jquery';
class Scroller {
constructor() {
this.events();
}
events() {
alert("hi");
$(".load-more").on("click", this.test_func.bind(this));
}
test_func() {
alert("yo");
}
}
当我运行此代码时,将显示hi警报,但是当我单击.load-时,什么也没发生。
我知道设置了jquery是因为当我运行此js文件(针对相同的类)时,它可以工作:
jQuery(document).ready(function ($) {
$(document).on('click', '.load-more:not(.loading)', function () {
答案 0 :(得分:1)
也许您尝试添加处理程序时未呈现输入。尝试使用此语法为您添加test_func
点击处理程序:
$(document).on('click','.load-more', this.test_func.bind(this));
如果您的元素是动态添加的,则以上是由于事件委托将处理程序正确添加到click事件的唯一方法。了解更多here。
答案 1 :(得分:1)
那是因为您告诉jQuery将所需事件附加到所有当前现有数据中。换句话说-如果在声明事件后创建了.load-more
元素,则jQuery不会将所需的事件附加到所需的选择器。
您可以选择2种选择:
$(document).on('click', '.load-more:not(.loading)', callback)
。