2015-06-05 68 views
3

我在我的主html中添加了一個可摺疊按鈕和一個簡單的<a>元素。 的代碼如下:無法引用動態添加的jQuery Mobile元素

var elements = ""; 

$('.button').bind('tap', function() { 
    elements += "<div class='my_clicker' data-role='collapsible'><h4>heading1</h4><h4>heading2</h4></div>"; 
    elements += "<a href='#' class='my_clicker'>Click me!</a>"; 
    $(".button_container").html(elements).trigger('create'); 
}; 

$(document.body).on('tap', '.my_clicker' ,function(){ 
    playAudio('success'); 
}); 

當我點擊<a>元素的音頻工作正常,所以它看起來一切正常,除了一個事實,即「.my_clicker」沒有引用我的可摺疊的元素,即可以」找到它。所以它看起來像常規的jQuery引用工作,但jQuery Mobile元素是不同的,不容易被引用。即使我在我的$(document.body).on()函數中使用'div'而不是'.my_clicker',仍然所有div元素都會發出聲音,但我的可摺疊按鈕不會。 (我也試過,而不是「.my_clicker」「a」和「H4」)

在考察我的HTML元素在瀏覽器中,當我收縮元件上單擊表達::之前改爲突出我已經添加了<div>

編輯:原來上面的代碼實際工作在我的平板電腦(如APK)儘管在瀏覽器不工作!不過,由於jQuery Mobile也可以用於Web應用程序,因此知道如何使其在瀏覽器中工作會很好。

回答

-1

你試過用live()而不是on()嗎?它適用於動態創建的元素。

http://api.jquery.com/live/

+0

這也可能有用。 http://www.codedisqus.com/0izVPePPWU/dynamically-create-ids-for-jquery-mobile-elements-then-reference-them.html – guergana