Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中,如何调用在加载事件上工作的“函数”?_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

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:请参阅我的答案以获得更深入的回答。