0

请看下面的代码:

jQuery(function($) {

Slider = function() {

    this.deleteSlider = function(e) {
        return false;
    }

}

var Slider = new Slider;

$('.heading-slider .actions .delete').click( Slider.deleteSlider );

});

如您所见,我正在使用 jQuery。在这种情况下,如何将包装在 jQuery 对象中的单击元素传递给 deleteSlider 函数?

我能想出的唯一解决方案是使用$(e.target),但必须有更好的方法。

4

2 回答 2

1

Silder.deleteSlider应该通过指向触发点击的 DOM 元素来调用,而不管其原始上下文如何,因此除了从函数内部this调用之外,您不需要执行任何操作。$(this)

如果您想通过this引用用 jquery 包装的元素来专门调用它,那么您可以这样做:

$('.heading-slider .actions .delete').on('click', function(e) {
    Slider.deleteSlider.apply($(this), [e]);
});
于 2013-02-18T20:48:13.583 回答
0

实际上,据我所知,没有更好的方法,使用有什么问题$(e.target)

jQuery(function($) {
    Slider = function() {
        this.deleteSlider = function(e) {
            var $elem = $(e.target);
            return false;
        }
    }

    var Slider = new Slider;
    $('.heading-slider .actions .delete').on('click', Slider.deleteSlider);
});
于 2013-02-18T20:44:57.063 回答