2011-12-23 81 views
0

好吧,我一直非常困難的時間搞清楚這一點。我想在創建jQuery插件時我還是個新手。我將在JSFiddle中發佈整個代碼,但這裏是問題的焦點。我的插件現在使用$ .fn.extend方法來允許用戶選擇一個選擇器,如:$(document).BGP({/*options*/}); ---這很好,除了BGP函數只會與「文檔」一起工作,因此我想刪除選擇器選項並將其編程到插件中。這樣用戶可以打電話,如:$ .BGP({/ 選項 /});jquery插件在這種情況下定義選擇器「文檔」

我失去了如何做到這一點!我嘗試了許多不同的東西,沒有任何作用。

(function ($) { 
    $.fn.extend({ 
      BGP: function (options) { 
        //Set the default 
        var defaults = { 
          backgroundStretch: "", 
          backImage: "", 
          midImage: "", 
          foreImage: ""...and much more 

這裏是JS小提琴----這是一個使用「文檔」選擇器的工作示例。

另外我有一些縮小的代碼在JS的頂部....你可以忽略這一點。我的代碼從一半開始。

我的函數調用位於JS的底部。

http://jsfiddle.net/mgunnels/3Z2sK/6/

+0

如果它不能在任何給定的jquery對象上工作,爲什麼它調用jquery對象?也許它應該直接調用'$ .BGP('? – 2011-12-23 04:50:05

+0

James - 這正是我想要達到的目標。如果你能幫助我做到這一點......那將是非常棒的!!!!!!! – 2011-12-23 04:52:13

回答

0

要創建一個 「靜態」 的插件,所有你需要做的是直接分配的功能將jQuery對象:

(function($) { 
    $.BGP = function(arg1) { ... }; 
})(jQuery); 

用法:

$.BGP("foo"); 

更新例如:http://jsfiddle.net/n8ea4/

另外,根本不需要.each循環,因爲只能有一個document

+0

Andrew你可以讓我看看JS上的小提琴,上面的鏈接是一個調用$(document)的工作示例....我嘗試了上面的提示,但它對我沒有用,我一定做錯了。 – 2011-12-23 05:06:48

+0

@mitch:更新了小提琴 – 2011-12-23 05:15:30

+0

非常感謝,我是一個白癡我沒有刪除右括號而打破了代碼!感謝您的幫助,我將刪除.each循環。 – 2011-12-23 05:22:06

相關問題