2013-09-11 85 views
1

我有一個插件,添加一個僞事件處理程序。然後,用戶將在參數中傳遞一個函數,就像在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); 

回答

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

輝煌!布拉沃先生!謝謝:) –

+0

任何機會你可以使用適當的術語來重寫我的問題?我很想知道是否應該使用其他術語來指代'$(this)'和'this'等等。謝謝。 –

相關問題