Javascript匿名函数同步

Javascript anonymous functions sync

本文关键字:同步 函数 Javascript      更新时间:2023-09-26

简单地说,我正在尝试同步joomla网站中使用小工具库创建的两个幻灯片,例如,当用户单击其中一个幻灯片上的下一个幻灯片时,另一个也会在幻灯片.js中运行nextSlide()函数。与上一个相同。我遇到的问题是,widgetkit使用匿名函数来创建这些幻灯片,并且在创建后我没有全局引用。由于我有限的编程知识,我似乎无法在点击处理程序中触发其他幻灯片的nextSlide函数。

如果有人能看一看,那将是最受欢迎的。

编辑:

当然我忘了链接示例网页

http://www.yootheme.com/widgetkit/examples/slideshow

我的类似,只有2个幻灯片,但仍然只在本地服务器上。

这里简要介绍一下widgetkit是一种可能的解决方案。使用jquery,您可以搜索任何具有next子幻灯片类的对象,然后单击所有其他对象。下面提供的代码没有经过测试,但应该为您指明正确的方向。只要您不调用stop propagation或prevent default,那么原始的单击处理程序就应该仍然被激发。

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();
      }
    });
  });
});