在on方法中使用此选择器

时间:2014-06-25 15:22:11

标签: jquery

我想处理动态创建的元素上的click事件,并且只能使用this选择。这是我的代码:

$.fn.checkbox = function(){
    return this.each(function(){
        $this = $(this)

        $(document).on('click', this, function(){
            // My code here
        })
    })
}

但是这段代码似乎不起作用。知道我该怎么做吗?

1 个答案:

答案 0 :(得分:1)

如果所有,您必须引用该元素this,那么您仍然坚持使用普通(非委托)事件处理程序。但是,这不是问题,因为元素在代码运行时已经存在。我们知道这一点,因为您有一个参考,如果它不存在,您就无法参考它。

但是,您正在尝试在jQuery插件函数中执行此操作,在这种情况下,该上下文中的this实际上是一个jQuery对象。这就是为什么您可以在问题中的代码中调用this.each(...);的原因。要绑定事件处理程序,您可以执行以下操作:

this.on('click', function(e) {
    // your event handler code here
});

在该处理程序函数的上下文中,this将引用所单击的元素,因此它与您在this上调用的.on()不同。