2011-05-11 54 views
1

我已經使用jQuery模板(http://api.jquery.com/jquery.tmpl/)在基於遠程內容的頁面上呈現列表,但這一切都很好,但是當我將類應用於內容並且具有類動態模板內容的點擊事件並不尊重硬編碼內容正常工作的行爲。jQuery tmpl插件 - 動態內容模板結果的問題(bug?)

我稍微編輯的基本演示所附帶TMPL插件添加靜態列表作爲一個概念證明:http://jsfiddle.net/3eVrR/2/

點擊靜態「酒吧」鏈接生成如我期望的警報。點擊任何按鈕(卡通或戲劇)來生成列表,然後單擊它們的超鏈接(它與硬編碼鏈接具有相同的類別)不會觸發警報。

任何人都可以看到什麼問題是? Firebug不會顯示任何錯誤,在檢查靜態和動態內容的類時是相同的。

感謝

回答

1

正如aleksv指出的,傳統的.click()處理程序只適用於處理程序初始化時可以選擇的元素。在這種情況下,.live()(或.delegate())處理程序將是更好的方法:

// This handler will apply to any .getPage element, even if it is created 
// after this handler declaration has been executed. 
$('.getPage').live('click', function(){ 
    alert('clicked element with getPage class'); 
}); 
+0

非常棒,謝謝你讓我難倒了。 – Raoul 2011-05-11 14:45:35

+0

不錯。我不知道:) – user489872 2011-05-11 14:52:46

1

我打得四處你的代碼,現在它的工作原理:http://jsfiddle.net/3eVrR/5/。加載所有內容時必須初始化事件。當沒有電影條目時,您初始化事件。然後你添加了電影條目,JS並不知道他們在那裏。

+0

謝謝! – Raoul 2011-05-11 14:50:38