2010-07-03 86 views
1

我想開始寫一個jQuery插件,一直在閱讀教程,但我堅持在開始..這是我有:創建一個jQuery插件

(function($) { 

    $.fn.testPlugin = function(options) { 
    this.each(function() { 
     alert($(this)); 
    }); 
    }  
})(jQuery); 

我與調用它:

$('#id').testPlugin(); 

但是,它沒有進入this.each功能...

基本上我只是想簡單地得到現在被稱爲,在這種情況下,ID:ID ....然後我會用這個做一些事情......

+1

你在哪裏作出這一呼籲?如果是在看到HTML之前在' * *中創建的*,那麼什麼都不會發生。 – Pointy 2010-07-03 20:11:10

+1

如果你想要更多的答案,你可能想接受更多的問題。 – 2010-07-03 20:51:28

回答

0

您發佈的代碼顯示正常。您沒有看到警報框的原因可能是瀏覽器在調用插件之前沒有完成解析HTML文檔(也稱爲「準備DOM」)。

嘗試:

$(document).ready(function() { 
    $('#id').testPlugin(); 
}); 
0

這是我用作模板。奇蹟般有效!

(function($){ 
    $.fn.extend({ 
    plugin_name: function(settings){ 
     var defaults = { 
     placeholder : true 
     }; 
     var settings = $.extend(defaults, settings); 
     return this.each(function(){ 
     var s = settings; 

     // Code goes here 

     }); 
    } 
    }); 
})(jQuery); 
+0

弗雷德,謝謝...所以我剛剛嘗試過這一點,但是在代碼發生的地方,如果我確實警告(s.placeholder),並且我已經更新了佔位符t​​his .. placeholder:'test',它返回undefined。 。我把它叫做$('id')。plugin_name({placeholder:'test'}); – dzm 2010-07-03 22:58:33