Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将触发事件的jQuery对象传递给自定义对象函数?_Jquery_Object_Parameter Passing - Fatal编程技术网

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

如何将触发事件的jQuery对象传递给自定义对象函数?,jquery,object,parameter-passing,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(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)
,但肯定有更好的方法。

事实上,据我所知,没有更好的方法,使用
$(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);
});

调用
Silder.deleteSloider
时,应将
this
指向触发单击的DOM元素,而不考虑其原始上下文,因此除了从函数中调用
$(this)
之外,无需执行任何操作

如果您想使用
this
引用用jquery包装的元素来具体调用它,那么您可以执行以下操作:

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

我以为有一种我不知道的“jQuery sh”方式:)谢谢!不,您可以向deleteSlider函数传递一个参数,但这需要在click函数中调用另一个函数,在我看来更糟。无论如何,事件都是自动传递的!