2011-07-07 78 views
1

感謝您看看這個問題。我試圖讓jQuery擴展函數在我的UI中工作。如何獲取擴展函數以使用動態jQuery數據?

問題是,它在數據在HTML中硬編碼時起作用,但在數據由jQuery動態放置時不起作用。

我創建了4層滑動,以更好地說明這個問題(參見下面的圖像):

SLIDE 1:包含我想要顯示的每個模塊中,擴大小文的UI。

SLIDE 2:股利結構設置的jQuery實時填充日期

SLIDE 3: Chrome檢查表示在存儲器(未在HTML源)動態地保持的數據

SLIDE 4:我這個硬編碼的HTML擴展器功能的工作原理:

<div class="tags-hidden"><p>some data...</p></div> 

這裏是膨脹機功能的起源: http://plugins.learningjquery.com/expander/

許多非常感謝您提供的任何幫助或建議。以下是幻燈片:

Slide 1

Slide 2

Slide 3

Slide 4

編輯1 - 這是根據您的建議,使用.live()的新代碼...它似乎並沒有被點擊呼叫:

<script type="text/javascript"> 
$(document).ready(function() { 
$('.div.tags-hidden p').live('click', function() { 
    $('div.tags-hidden p').expander({ 
     slicePoint:  80, // default is 100 
     expandText:   '[...]', // default is 'read more...' 
     collapseTimer: 5000, // re-collapses after 5 seconds; default is 0, so no re-collapsing 
     userCollapseText: '[^]' // default is '[collapse expanded text]' 
    }); 
}); 
</script> 

回答

1

我認爲你不想在頁面呈現時不顯示的元素使用.live()。 看看這裏http://api.jquery.com/live/

+0

非常感謝。我剛剛使用.live()添加了編輯1到我的主帖子,其中包含新代碼。它看起來沒有工作... –

+0

哦,這不是一個事件功能,而是一個造型功能。我能想到的唯一解決方案是服務器將幻燈片4中的代碼與Ajax數據一起發送。醜陋,但工作。 – Eric

1

加載內容後,您可能不得不重新連接擴展器插件。例如,如果您通過ajax調用動態加載內容,則需要在ajax加載完成後再次調用$('div.tags-hidden p').expander()

+0

克里斯感謝您的迴應。我只是想知道如果你認爲.live()可能是解決方案,如果是的話,將如何實現它?再次感謝! –