2011-03-01 78 views
1

我有一個元素,可以在頁面加載時獲取由jquery添加的屬性。該屬性稱爲jcarouselindex。當文檔加載時,我需要獲取這個屬性的值。jQuery .live功能問題

Ive得到了選擇,如果沒有動態地添加它可能只是做:

id = jQuery('#gallery-carousel li.selected').attr("jcarouselindex"); 

但由於其被動態地添加id的值是不確定的。我想我需要使用.live()有沒有人知道我會如何得到這個屬性的價值?

+0

其實它應該工作。 'live'僅用於在綁定時將事件綁定到不存在**的元素。您應該能夠以通常的方式讀取添加到對象中的屬性。也許問題在別的地方? – Andrea 2011-03-01 10:51:09

+1

如果在頁面加載時加載了,那麼在加載語句後是否可以運行getValue代碼添加元素? – Alex 2011-03-01 10:52:24

回答

2

上面的代碼應該可以工作。 .live()用於不同的目的。我想你可能在動態添加之前嘗試訪問attr。嘗試使用setTimeout調用此函數,這將確保所有現有代碼都得到執行。我假設你的代碼已經在$(function(){})之內了;塊。

0

應該使用活動將事件處理程序綁定到綁定時頁面上不存在的元素。

我想你需要看看你在頁面上的執行時間。你的選擇器包含了在li上選擇的類,所以我認爲一個事件必須觸發添加選定的類。 jcarouselindex屬性值被添加後,這個事件是否發生?如果是這樣,那麼當選擇事件發生時你應該捕獲這個值。

不幸的是,您還沒有給我們很多細節,所以更多的信息可以幫助我們更好地爲您提供幫助。

0

live不是爲了這個,而是爲事件處理程序。您必須在設置屬性後運行該代碼,因此請嘗試:

$.ready(function(){ 
    id = jQuery('#gallery-carousel li.selected').attr("jcarouselindex"); 
}); 
0

是否正在使用jcarousel插件?

如果是有回調,你可以在轉盤上的初始化使用:

$('#gallery-carousel').jcarousel({ 
    initCallback: function() { 
     var id = $('#gallery-carousel li.selected').attr("jcarouselindex"); 
     // do something with id 
    } 
}); 

這樣你可以肯定的是,旋轉木馬已經執行代碼之前初始化。

參見:http://sorgalla.com/projects/jcarousel/以獲得進一步的細節。