为了为许多图像制作可滑动的幻灯片,我试图将两个插件Swipe.js和lazyloader.js拼接在一起。我想让 Swipe 插件中的幻灯片计时器事件调用 Lazyloader 内部的更新函数。从研究来看,我的问题似乎是 namespace 之一;也就是说,Swipe 不知道 Lazyloader 内部的东西,因此无法调用该函数。
- 鉴于以下代码,我是否正确理解我的问题?
- 如果是这样,我怎样才能让 Swipe 访问 Lazyloader 的功能?
谢谢你。
跟进:在与 Cheeso 进行问答之后,我现在发现我问错了关于我最终需要发生什么的问题。我添加此评论是为了避免让任何未来的读者因为我的坏问题而感到困惑。这与命名空间无关,甚至与访问不应做的私有函数无关。如果您真的不知道自己在做什么,那么这个线程最终是关于尝试和 frankenstein 库一起可能是多么不可取。; ) 结束跟进
swipe.js 中的回调:
this.callback = this.options.callback || function() {
在 html 中调用的脚本:
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.lazyload.js" type="text/javascript"></script>
<script src='js/swipe.js' type="text/javascript"></script>
<script type="text/javascript">$(document).ready(function() {
function myAlert(){
//call a function from inside jquery.lazyload.js
alertMe();
}
//instantiate a swipe object and pass in a bunch of
//options, especially "callback" which fires on every slide change
window.mySwipe = new Swipe(document.getElementById('slider1'), {
startSlide: 0,
speed: 1000,
auto: 5000,
callback: function(){
myAlert();
}
});
// run lazyload on every VISIBLE image with the class "lazy" on load, and on every click
$("img.lazy").lazyload({event: "click", effect : "fadeIn", threshold: 0,});
});
</script>
jquery.lazyloader.js:
//outside of the container below, I can be called by myAlert()
function alertMe() {
alert("it worked!");
}
(function($, window) {
$window = $(window);
$.fn.lazyload = function(options) {
///
///Here be a bunch of lazyloader stuff
///
//I work when above, but once I am inside this container, I cannot be called by myAlert(),
//and I will error as 'not a valid function'
function alertMe() {
alert("it worked! Even inside of this container! ");
}
})(jQuery, window);