在自定义插件中使用$(this)?

时间:2013-09-11 00:22:55

标签: jquery plugins this

我有一个添加伪事件处理程序的插件。然后,用户将在参数中传递一个函数,就像在jQuery中的任何指定事件中一样。如何在用户可以在自定义函数中使用的函数中添加$(this)功能?另外,如果有的话,请告诉我正确的术语。

// Implementation
$("some_selector").myCustomHandler(function(){
  $(this).css("background-color", "red");
});

// Plugin

(function( $ ){

   $.fn.myCustomHandler = function(fn){
   //some code
   //some code
   // then do this:
       fn();
   }
})( jQuery );

1 个答案:

答案 0 :(得分:2)

您可能正在寻找

(function( $ ){

   $.fn.myCustomHandler = function(fn){
   //some code
   //some code
   // then do this:
       this.each(function(idx, el){
           fn.call(this, idx, el)
       })
   }
})( jQuery );

甚至

(function( $ ){

   $.fn.myCustomHandler = function(fn){
   //some code
   //some code
   // then do this:
       this.each(fn)
   }
})( jQuery );