(function($,window,undefined) {
$.fn.simplyScroll = function(options) {
return this.each(function() {
new $.simplyScroll(this,options);
});
};
var defaults = {
customClass: 'simply-scroll',
frameRate: 30, //No of movements per second
speed: 2, //No of pixels per frame
orientation: 'horizontal', //'horizontal or 'vertical' - not to be confused with device orientation
auto: true,
autoMode: 'loop', //auto = true, 'loop' or 'bounce',
manualMode: 'end', //auto = false, 'loop' or 'end'
direction: 'forwards', //'forwards' or 'backwards'.
pauseOnHover: false, //autoMode = loop|bounce only
pauseOnTouch: true, //" touch device only
pauseButton: false, //" generates an extra element to allow manual pausing
startOnLoad: false //use this to delay starting of plugin until all page assets have loaded
};
嗨,我对javascript和语法很新,特别是功能明智。当它包含在像这样的函数中时,如何在默认对象中获取auto的值?
我知道自动将只是defaults.auto,但由于该函数未命名,我不知道如何进入它。我打算稍后在外部javascript文件中更改值。
答案 0 :(得分:1)
如果您的代码在函数之外,则无法获取此值,除非此函数将对象存储在可通过全局变量到达的defaults
变量的某个位置。这是由于JavaScript函数的工作方式 - 函数外部的代码对该函数的局部变量无访问。 (这与其他编程语言没有太大区别。)
如果您的目标只是更改值而不是获取默认值,那么大多数jQuery插件都允许您传入一个对象,其属性将覆盖默认设置。根据插件的名称,你可以这样做:
$("#something").simplyScroll({
auto: false
});
答案 1 :(得分:0)
在我看来,有两种方法可以让你访问这个功能范围之外的defaults
对象
1。在功能范围内,defaults
对象将被分配给全局对象(=窗口)
...
// In the function scope
window.defobject = defaults;
...
例如:
(function($, window, undefined) {
var defaults = {
foo : "bar"
};
window.defobject = defaults;
})(jQuery, this);
console.print(defobject); // This is valid with no error
2. 该函数最终将此对象作为输出
返回...
// In the function scope
return defaults;
例如:
var defobject = (function($, window, undefined) {
var defaults = {
foo : "bar"
};
return defaults;
})(jQuery, this);
console.print(defobject); // This is also valid with no error