如何将触发事件的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函数中调用另一个函数,在我看来更糟。无论如何,事件都是自动传递的!