2016-11-03 41 views
0

在我的腳本中,如何讀取諸如autoHide: true之類的「事物」來設置變量以及腳本中的內容。我稱他們爲「事物」,因爲我不確定他們被稱爲什麼,這意味着由於我缺乏知識,可能有數以千計的資源,我無法找到如何實現這一目標。將字段傳遞給腳本

我希望有多個選項,例如scrollbarWidth,theme以及還沒有知道如何在我的文件中讀取它們的信息,我有點遺憾!

我目前得到了我的完整工作腳本的實際演示here

(function(jQuery, undefined) { 
    "use strict"; 
    jQuery.fn.extend({ 
     BananzaScroll: function() { 

     // Script Functions Here 

     } 
    }); 
})(jQuery); 


$("#demo").BananzaScroll({ 
    autoHide: true 
}); 
+0

對象將作爲參數到'BananzaScroll'功能被傳遞。我建議你閱讀關於創建插件的jQuery指南:https://learn.jquery.com/plugins/basic-plugin-creation/。 –

+1

你所指的「事物」是一個「關鍵」:「對象」(又名哈希)的「值」對。 – IMTheNachoMan

+1

謝謝@IMTheNachoMan –

回答

1

你基本上只是把它們設置在全局範圍內。

<script> 
    var myValue = 'abc'; 
</script> 

(function ($) { 
    console.log(myValue); 
})($); 

如果您正在創建的東西,需要值的手,它會是最好創建一個對象來保存它們,並把只是在全球範圍內:

<script> 
    var myOptions = { 
     autoHide: false, 
     speed: 5, 
     scrollBarWidth: 10 
    }; 
</script> 

這使全球範圍內不會受到過度污染。你也可能想僞名稱空間,以避免與全局範圍內的其他任何事物發生衝突。

<script> 
    var myApplicationName_myData = {}; 
</script> 

如果你正在做一個jQuery插件,你真的想它們作爲參數傳遞給腳本:

<script> 
    $('#id').myPlugin({ 
     autoHide: false 
    }); 
</script> 

$.fn.myPlugin = function (options) { 
    console.log(options.autoHide); 
}; 
+0

是否有任何簡短的方法來檢查選項是否已設置爲替換默認選項? –

+0

如果您使用所有默認值創建一個對象,然後使用類似'jQuery.extend'的東西,則可以將默認值應用於選項。例如,'opts = $ .extend(defaults,opts)' – samanime

+0

好吧,所以我設置了所有的默認值,然後調用它,它會替換所有設置,但'AutoHide:true/false'是什麼?真/假需要if語句嗎? –

2

參數傳遞給BananzaScroll定義,像這樣。 https://jsfiddle.net/80x1hLk1/:

(function(jQuery, undefined) { 
    "use strict"; 

    jQuery.fn.extend({ 
    BananzaScroll: function(opts) { 
     console.log(opts); // opts contains the object you pass in 
    } 
    }); 
})(jQuery); 

$('#demo').BananzaScroll({ 
    autoHide: true 
}); 

JSBin demo