2012-03-23 203 views
0

簡而言之,我試圖同步在joomla網站中使用widgetkit lib創建的兩個幻燈片,例如。當用戶點擊下一張幻燈片時,另一個幻燈片會在slideshow.js中運行nextSlide()函數。與以前相同。我遇到的問題是widgetkit使用匿名函數來創建這些幻燈片,並且在創建它們後我沒有全局引用它們。有了我有限的編程知識,我似乎無法在點擊處理程序中觸發其他幻燈片的nextSlide函數。Javascript匿名函數同步

如果任何人都可以看看,這將是最受歡迎的。

編輯:

當然,我忘了鏈接的例子網頁

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

我的是隻有2幻燈片類似,但仍然只有本地服務器上。

+1

看看是什麼?我們可以看到你到目前爲止? – 2012-03-23 02:05:38

+1

請張貼一些相關的代碼,並歡迎來到Stack Overflow。 – 2012-03-23 02:05:52

+1

我想你忘了在我們可以看到代碼的地方添加一個引用。請修改您的帖子。 – 2012-03-23 02:06:08

回答

0

在這裏簡單看一下widgetkit是一種可能的解決方案。使用jquery,您可以搜索任何具有一個幻燈片類的對象,並使用下一個子對象並單擊其他所有對象。下面提供的代碼未經測試,但應指向正確的方向。只要你不叫停止傳播或防止默認,那麼原來的點擊處理程序仍然應該觸發。

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

我一直希望在widgetkit的click處理器中保留邏輯,但我想我需要更多地瞭解JavaScript中的函數和對象如何工作。外部代表團/超載你提議工作正常,非常感謝! – user1287307 2012-03-23 07:02:44