2013-02-18 39 views
0

請看看下面的代碼:如何將觸發事件的jQuery對象傳遞給自定義對象函數?

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),但必須有更好的方法。

回答

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); 
}); 
+0

我想有一個「jQuery的-SH」的方式,我不知道:)謝謝! – barakuda28 2013-02-18 20:47:48

+0

不可以,你可以傳遞一個參數給deleteSlider函數,但是這需要在click函數中調用另一個函數,並且會更差。無論如何,事件都是自動通過的! – adeneo 2013-02-18 20:48:33

1

Silder.deleteSliderthis指向觸發點擊無論其原始上下文的DOM元素被調用,因此你不需要在函數中做多的呼叫$(this)其他任何東西。

如果你想專門與this引用包裹與jQuery元素調用它,那麼你可以這樣做:

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