Javascript匿名函数同步
简单地说,我正在尝试同步joomla网站中使用widgetkit库创建的两个幻灯片,例如,当用户单击其中一个幻灯片上的下一个幻灯片时,另一个幻灯片也会在slideshow.js中运行nextSlide函数。上一次也一样。我遇到的问题是widgetkit使用匿名函数来创建这些幻灯片,并且在创建之后我没有全局引用。由于我有限的编程知识,我似乎无法在单击处理程序中触发其他幻灯片的nextSlide函数 如果有人能看一看,那将是非常受欢迎的 编辑: 当然,我忘了链接示例网页Javascript匿名函数同步,javascript,synchronization,Javascript,Synchronization,简单地说,我正在尝试同步joomla网站中使用widgetkit库创建的两个幻灯片,例如,当用户单击其中一个幻灯片上的下一个幻灯片时,另一个幻灯片也会在slideshow.js中运行nextSlide函数。上一次也一样。我遇到的问题是widgetkit使用匿名函数来创建这些幻灯片,并且在创建之后我没有全局引用。由于我有限的编程知识,我似乎无法在单击处理程序中触发其他幻灯片的nextSlide函数 如果有人能看一看,那将是非常受欢迎的 编辑: 当然,我忘了链接示例网页 我的类似于只有2个幻灯片,但
我的类似于只有2个幻灯片,但仍然只在本地服务器上。这里简要介绍一下widgetkit是一个可能的解决方案。使用jquery,您可以搜索包含一个幻灯片类且子级为next的任何对象,然后单击所有其他对象。下面提供的代码没有经过测试,但应该为您指明正确的方向。只要不调用“停止传播”或“防止默认”,那么原始的单击处理程序仍应启动
var slideshow_count = $('.slides .next').length;
var cascade_countdown = 0;
$('.slides .next').each(function() {
$(this).click(function() {
// stop an infinite loop if we're already cascading till we've done it for all the elements.
if(cascade_countdown != 0) {
cascade_countdown--;
return true;
}
// we don't include the slideshow we're clicking in this count
cascade_countdown = slideshow_count - 1;
var clicked_el = this;
$('.slides .next').each(function() {
// only click elements that aren't the initiator
if(this !== clicked_el) {
$(this).click();
}
});
});
});
看看什么?我们能看看你到目前为止得到了什么吗?请发布一些相关的代码,欢迎来到Stack Overflow。我想你忘了在我们可以看到代码的地方添加一个引用。请编辑您的帖子。我希望在widgetkit点击处理程序中保留逻辑,但我想我需要了解更多关于javascript中函数和对象如何工作的信息。您提议的外部授权/过载工作正常,非常感谢!