0

所以我动态创建一个按钮列表,然后将它们插入到 jquery 移动页面中的 div 中。问题是当它们被插入时,它们的样式不再像我只是在 html 中手动输入它们那样。这是我正在做的代码:

function iabGetURLs(){
var allURLs = window.localStorage.getItem("iabURLs");
html = "";
tmpURLs = allURLs.split(",");
for(var z=0;z<tmpURLs.length;z++){
    var urlParts = tmpURLs[z].split("|");
    html += '<input type="button" rel="' + urlParts[0] + '" class="iabListButton_' + z + '" value="' + urlParts[1] + '" />';    
}
$(".iabList").html(html); //puts it in the div

点击功能:

$("[class^=iabListButton_]").click(function(){
    $this = $(this);
    $goURL = $this.attr('rel');
    startBrowser($goURL); 
 });
4

1 回答 1

1

动态添加内容后,您需要.button()单独调用每个按钮上的方法或调用trigger('create')父级以增强所有新添加的元素。

尝试改变

$(".iabList").html(html);

$(".iabList").html(html).trigger("create");

更新:由于您为它们注入按钮的标记以便工作,您需要使用事件委托将事件处理程序附加到最近的静态(不更改)父元素。在你的情况下,它似乎是$(".iabList")。话虽这么说改变

$("[class^=iabListButton_]").click(function(){
...
});

$(".iabList").on("click", "[class^=iabListButton_]", function(){
...
});

阅读更多.on()

.off()您可能需要先分离处理程序

$(".iabList").off("click", "[class^=iabListButton_]").on("click", "[class^=iabListButton_]", function(){
...
});
于 2013-06-07T21:30:13.693 回答