2013-04-15 41 views
2

一旦輪播滑動,我想向ID myCarousel以外的輸入添加值。在Twitter中觸發事件引導程序的輪播

的功能,一旦已滑動旋轉木馬是這樣實現的事件:

$('#myCarousel').bind('slid', function() { 
    $('input[name=linkOnly]').val('Test') 
} 

我想火一旦特定滑滑梯的事件。我試過類似$('#myCarousel li[data-slide-to=1]').bind('slid', function() ...但它沒有註冊。

任何幫助表示讚賞,謝謝。

回答

4

您可以在適當的事件上設置一個事件處理程序,然後根據哪個幻燈片是.current來做任何事情。例如,觸發一些javascript幻燈片1個週期時:

$(document).on("slid", function(event) { 
    if ($(event.target).find(".active").data("slide-to") == 1) { 
    // do stuff 
    } 
}); 

從一個簡單的測試,這似乎並沒有工作,除非它附着在傳送帶上方的元素(你也只需要修改的東西如果你有一個以上的旋轉木馬,一點點)。

編輯:咋一看後,原因上面並沒有被綁定至轉盤本身的工作是,active類不添加,直到觸發slid事件後立即(似乎是,如果處理程序被添加到父元素,active類被添加,而slid事件冒泡)。您可以通過使用setTimeout延遲觸發行爲,解決這個(工作,即使有0超時):

$("#myCarousel").on("slid", function(event) { 
    var carousel = $(event.target); 
    setTimeout(function() { 
    if (carousel.find(".carousel-indicators .active").data("slide-to") === 1) { 
     // do stuff 
    } 
    }, 0); 
}); 

是否額外的代碼是值得的,是你的,儘管它可能是一個小更穩定。它甚至可能是一個小延遲(而不是0),以確保事情按照您期望的方式工作。

+0

謝謝!有沒有辦法在'滑動'而不是'文檔'上引用'carousel'?用'carousel'或'#myCarousel'代替它不起作用。 – AAA

+0

是的,我注意到當我做了一個快速測試,如果它連接到旋轉木馬本身,它不起作用,但我不完全確定爲什麼。任何更高級別的元素都應該可以工作,所以我不知道它是否可以將它綁定到傳送帶的父級或者什麼(我只是使用'document'作爲例子)。 –

+0

找出它爲什麼不能在元素本身上工作,更新了答案。 –