如何将触发事件的jQuery对象传递给自定义对象函数?

时间:2013-02-18 20:42:25

标签: jquery object parameter-passing

请查看以下代码:

jQuery(function($) {

Slider = function() {

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

}

var Slider = new Slider;

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

});

我正在使用jQuery。在这种情况下如何将包含在jQuery对象中的clicked元素传递给deleteSlider函数?

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

2 个答案:

答案 0 :(得分:1)

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

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

$('.heading-slider .actions .delete').on('click', function(e) {
    Slider.deleteSlider.apply($(this), [e]);
});

答案 1 :(得分: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);
});