Javascript 使用初始调用创建jQuery插件,并覆盖默认值
基本上,我想创建一个jquery插件,在页面加载时显示加载动画。为它创建jquery是很容易的一部分 你可以在这里看到:Javascript 使用初始调用创建jQuery插件,并覆盖默认值,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,基本上,我想创建一个jquery插件,在页面加载时显示加载动画。为它创建jquery是很容易的一部分 你可以在这里看到: $.fn.prelodr = function(options) { var settings = $.extend({ delay: 1000, }, options); return this.each(function() { var $elm = $(this) , d = settings.
$.fn.prelodr = function(options) {
var settings = $.extend({
delay: 1000,
}, options);
return this.each(function() {
var $elm = $(this)
, d = settings.delay;
$(window).load(function() {
$('.preloadback').delay(d).slideUp(300);
});
});
}
并使用$('.prelodback').prelodr()代码>我使用这个函数。
现在,我在多个页面上都有这个加载程序,所以我将代码移动到js文件中,并将其包含在项目中。它毫无问题地工作
问题:
我想提供延迟选项使用
$('.preloadback').prelodr({delay:5000,});
我从文档页脚使用此函数调用。问题是它被呼叫了两次。如何在js文件中保留初始函数调用并覆盖页面中的默认选项?如果您的自定义延迟调用首先发生,您可以在该元素上设置一个标志,以便在第二次调用时忽略它
$.fn.prelodr = function(options) {
var settings = $.extend({
delay: 1000,
}, options);
return this.each(function() {
var $elm = $(this)
, d = settings.delay;
if($elm.data('prelodr-loaded')) { return; }
else { $elm.data('prelodr-loaded', true); }
$(window).load(function() {
$('.preloadback').delay(d).slideUp(300);
});
});
}
如果具有自定义延迟的调用首先发生,则可以在该元素上设置一个标志,以便在第二次调用时忽略它
$.fn.prelodr = function(options) {
var settings = $.extend({
delay: 1000,
}, options);
return this.each(function() {
var $elm = $(this)
, d = settings.delay;
if($elm.data('prelodr-loaded')) { return; }
else { $elm.data('prelodr-loaded', true); }
$(window).load(function() {
$('.preloadback').delay(d).slideUp(300);
});
});
}