简单地说,我正在尝试同步在joomla网站中使用widgetkit lib创建的两个幻灯片,例如。当用户单击下一张幻灯片时,另一张幻灯片也会在slideshow.js中运行nextSlide()函数。与之前相同。我遇到的问题是widgetkit使用匿名函数来创建这些幻灯片,并且在创建它们之后我没有对它们进行全局引用。凭借我有限的编程知识,我似乎无法在点击处理程序内触发其他幻灯片的nextSlide函数。
如果有人可以看看,那将是非常受欢迎的。
编辑:
当然我忘了链接示例网页
http://www.yootheme.com/widgetkit/examples/slideshow
Mine类似,只有2个幻灯片,但仍然只在本地服务器上。
答案 0 :(得分:0)
在这里简要介绍一下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();
}
});
});
});