jQuery动态添加选择

时间:2013-12-09 15:33:30

标签: jquery jquery-mobile select clone

当我通过克隆向DIV添加选择动态时,我无法从新下拉列表中选择任何内容,为什么会有任何想法?

$(".inline-form .copyIng:first-child").clone().appendTo(".inline-form");

请参阅:http://jsfiddle.net/rxwL6/

.trigger("refresh"); Dosen't change anything, I still can't select anything from the new dropdown.

1 个答案:

答案 0 :(得分:1)

问题是您正在克隆已被jQM“增强”而不是原始标记的html内容。因此,jQM不知道如何创建或刷新它。

相反,如果你提前知道标记,只需像这样插入:

$(document).on("pageinit", function () {
    $("#newIng").click(function () {
        var tocopy = $('<div class="copyIng"><div class="left"><input type="text" name="m" placeholder="Some text" /></div> <div class="ingDiv"><select size="1" name="c"><option value="">No 1</option><option value="">No 2</option><option value="">No 3</option></select></div></div>');       
        $(".inline-form").append(tocopy);
        $(".copyIng").trigger("create");
    });
});
  

这是您更新的 FIDDLE

更新: 来自评论。 OP有兴趣克隆下拉列表中的选项列表,因此不必每次都从数据库中检索它们。以下是获取选项列表并将其插入到附加的新文本中的示例:

$(document).on("pageinit", function () {
    $("#newIng").click(function () {
        var optList = $(".ingDiv select").eq(0).html();                
        var tocopy = $('<div class="copyIng"><div class="left"><input type="text" name="m" placeholder="Some text" /></div> <div class="ingDiv"><select size="1" name="c">' + optList + '</select></div></div>');      
        $(".inline-form").append(tocopy);
        $(".copyIng").trigger("create");
    });
});
  

已更新 FIDDLE