2014-01-25 101 views
1

我正在開發一個jQuery的移動應用程序。我遇到了一個問題,即動態添加的按鈕不起作用,除非我使用.trigger('create');,但即使添加了觸發器,即使我仍然有同樣的問題。這個問題在這個網站上被問了很多次,但是所有的答案都建議在代碼中加入.trigger('create');。我該如何解決這個問題? 這是我的代碼:Jquery移動添加按鈕到一個頁面不工作

var button = $("<a data-role="button" id="my_button">My Button</a>"); 
$("#my_div").append(button).trigger('create'); 

$("#my_button").on("click", function(){ 
    alert("clicked"); 
}); 

當我點擊按鈕什麼也沒有發生。

+0

你試過我的回答如下? – Omar

回答

1

當動態添加錨點時,請使用.buttonMarkup()來創建它。當使用上述增強方法創建它時,可以使用而不是來添加data-role="button"

$("#my_div").append($("<a/>", { 
    id: "my_button", 
     "data-role": "button" 
}).text("Button").buttonMarkup({ 
    icon: "delete", 
    iconpos: "notext" 
})); 

結合事件來動態創建的元素,應當從文檔委派。

$(document).on("click", ".selector", function() { 
    alert("clicked"); 
}); 

Demo

0

變化:

var button = $("<button data-role="button" id="my_button">My Button</button>"); 

到:

var button = $("<button data-role='button' id='my_button'>My Button</button>"); 

你沒有正確地創建您的按鈕。將HTML正確連接並且代碼應該可以工作

+0

我將按鈕更改爲 –

+0

這只是一個示例代碼 –

+0

@MaxPain爲什麼它在這裏工作:http://jsfiddle.net/5J6jB/? – Felix

相關問題