2012-07-10 66 views
1

可能重複:
jQuery Mobile does not apply styles after dynamically adding contentjQuery Mobile的追加新的按鈕不表現爲預期

我想知道如果我缺少的東西在這裏...

如果我寫

<a onclick="deleteThis()" data-role="button" data-theme="a">Button text</a> 

在HTML頁面的正文內工作正常。 但是當我用編程方式嘗試添加新的按鈕下面:

$('.block').append('<a onclick="deleteThis()" data-role="button" data-theme="a">' + results[i].Title + '</a>'); 

鏈接被追加罰款只是沒有jQuery Mobile的造型,數據主題=「一個」應適用於一個特定的顏色樣本的CSS元素有問題。

我哪裏錯了?

+0

jQuery手機是否會解析html並在呈現之後相應地設置它的樣式?如果是這樣的話,需要重新解析一個元素,如果它是在dom加載後添加的。我不確定這只是好奇而已。 – jeschafe 2012-07-10 14:59:41

+0

這樣的聲音可能沿着寫入線,但我也不知道如何做到這一點。 – user1202278 2012-07-10 15:10:38

+0

你什麼時候執行追加?我會嘗試追加任何其他的JS代碼之前,看看這是否工作。 – 2012-07-10 14:58:39

回答

5
$('.block').append(' <a onclick="deleteThis()" data-role="button" data-theme="a"> Text</a>').trigger("create"); 
-1

嘗試觸發刷新事件,頁面:

$('#pageId').trigger('pagecreate'); 

,如果它是一個ListView:

$('#listId').listview('refresh'); 
+0

謝謝,我已經嘗試過,但不幸的是 – user1202278 2012-07-10 15:10:08

+0

你的html的結構是什麼? – Th0rndike 2012-07-10 15:10:53

+0

我在旅途中有一個簡單的移動佈局。負載的頁面我有javascript查詢外部api來檢索一些信息,然後顯示在一系列鏈接樣式按鈕。從api中檢索數據的工作很好,並且沒有樣式就可以很好地追加。 – user1202278 2012-07-10 15:14:23

0

您可以使用jQuery Mobile的提供的.buttonMarkup()方法。該方法允許您傳遞一些可選參數。

下面是用於.buttonMarkup()方法文檔:http://jquerymobile.com/demos/1.1.0/docs/buttons/buttons-options.html

下面是使用這種方法創建一個按鈕的一個示例:

$('<a href="#" />').text('New Button').buttonMarkup({ 
    theme : 'a', 
    icon : 'star', 
    mini : false, 
    inline : false 
}); 
//these are just a few of the options 

這裏是一個演示:http://jsfiddle.net/jasper/6BF6M/

另外,我可以建議使用jQuery來使你的事件綁定,如:

$('.block').append(
    $('<a href="#" />').text('New Button').buttonMarkup().bind('click', deleteThis) 
);