Javascript 在jQuery中,如何调用在加载事件上工作的“函数”?
我正在使用 此插件用于制作全屏背景幻灯片 当我想在文档加载时调用它时,它工作得非常好:Javascript 在jQuery中,如何调用在加载事件上工作的“函数”?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我正在使用 此插件用于制作全屏背景幻灯片 当我想在文档加载时调用它时,它工作得非常好: $(document).ready(function(){ $.supersized({ slides : [ { image :'sh490.jpg', title : 'title 1', url : '' }, { image :'sh390.jpg', title : 'title 2', url : '' } ]
$(document).ready(function(){
$.supersized({
slides : [
{ image :'sh490.jpg', title : 'title 1', url : '' },
{ image :'sh390.jpg', title : 'title 2', url : '' }
]
});
});
如果我想调用
$.supersized({..})代码>(再次或首次)使用新参数,无需重新加载页面。。。例如,在调用返回“要滑动的新图像”的Ajax函数之后
有什么诀窍吗?我想你完全可以将这个充满一组新图像的插件称为如下函数:
mySlidesFunction(jsonSlides){
$.supersized({slides : jsonSlides});
}
我想你完全可以将这个充满新图像集的插件称为如下函数:
mySlidesFunction(jsonSlides){
$.supersized({slides : jsonSlides});
}
任何技巧,比如将其插入函数并在任何时候调用它,无论何时何地调用
var superSizeMe = function(p){
$.supersized({ slides : p });
};
$.getJSON("myfile.json", function(json){
superSizeMe(json);
});
任何技巧,比如将其插入函数并在任何时候调用它,无论何时何地调用
var superSizeMe = function(p){
$.supersized({ slides : p });
};
$.getJSON("myfile.json", function(json){
superSizeMe(json);
});
正如我在评论中所说,在设置新选项后,您需要触发load
事件。这是因为开发人员已在内部将功能绑定到事件。您可以使用$(窗口)手动触发事件。trigger('load')
。但是,这可能会产生负面后果,因为绑定到此事件的任何其他事件处理程序也将再次启动,所以请记住这一点
如果我是你,我会从github中派生他的代码,并将其修改为使用自定义事件,然后将触发该自定义事件的函数绑定到window.load。通过这种方式,您只能从单击或加载功能触发该自定义事件,并在window.load
上进行初始触发
或者,您可以添加一个公共销毁方法,在使用新参数再次初始化插件之前,完全删除插件创建的注入dom元素和事件绑定。正如我在评论中所说,您需要在设置新选项后触发加载
事件。这是因为开发人员已在内部将功能绑定到事件。您可以使用$(窗口)手动触发事件。trigger('load')
。但是,这可能会产生负面后果,因为绑定到此事件的任何其他事件处理程序也将再次启动,所以请记住这一点
如果我是你,我会从github中派生他的代码,并将其修改为使用自定义事件,然后将触发该自定义事件的函数绑定到window.load。通过这种方式,您只能从单击或加载功能触发该自定义事件,并在window.load
上进行初始触发
或者,您可以添加一个public destroy方法,该方法在使用新参数再次初始化插件之前,完全删除插件创建的注入dom元素和事件绑定。而且它不能像我所希望的那样工作!当我试着叫它。。。不是$的全部功能。超大的按预期完成!但它并没有像我想要的那样工作!当我试着叫它。。。不是$的全部功能。超大的按预期完成!我想调用$。例如,在“click”函数上调用超大小的。但我希望它在加载时能够正常工作!您是否尝试调用mySlidesFunction(initialjsonImgSet);加载?在再次调用supersize后是否尝试了$(窗口).trigger('load')
?我不确定这个事件是否能与触发器一起工作,但值得一试!调用$(窗口).trigger('load')
@amrnt:请参阅我的答案以获得更深入的响应。我想调用$。例如,在“单击”功能上使用超大的。但我希望它在加载时能够正常工作!您是否尝试调用mySlidesFunction(initialjsonImgSet);加载?在再次调用supersize后是否尝试了$(窗口).trigger('load')
?我不确定这个事件是否能与触发器一起工作,但值得一试!调用$(窗口).trigger('load')
@amrnt:请参阅我的答案以获得更深入的回答。