1

使用 jquery 移动。所以我有一个在单击按钮时调用的函数,它创建复选框并将它们插入到 div 中。它们可以正常显示和运行,但不像项目中的其他所有内容那样以我的按钮样式为主题。如果我只是在 div 中手动输入 html。然后样式是正确的。但如果我通过 jquery 插入它们就不会。我错过了什么。

var html = '<fieldset data-role="controlgroup">';
        html += '<label for="radio-choice-01">First Name</label><input name="radio-choice-0" id="radio-choice-01" type="radio" data-theme="a">';
        html += '<label for="radio-choice-02">Second Name</label><input name="radio-choice-0" id="radio-choice-02" type="radio" data-theme="a">';
        html += '</fieldset>';
        $("#names_content").html(html);

$("input[name=namechoice]:radio").change(function(){
     var tempVal = $('input:radio:checked').val();
     alert("clicked");
     console.log(tempVal);
});
4

1 回答 1

2

您需要手动增强其标记:

$('[type="radio"]').checkboxradio();

或使用:

$("#names_content").trigger('create');

工作示例:http: //jsfiddle.net/Gajotres/HPSCb/

$(document).on('pagebeforeshow', '#index', function(){ 
 var html = '<fieldset data-role="controlgroup">';
        html += '<label for="radio-choice-01">First Name</label><input name="radio-choice-0" id="radio-choice-01" type="radio" data-theme="a" checked="checked" value="1">';
        html += '<label for="radio-choice-02">Second Name</label><input name="radio-choice-0" id="radio-choice-02" type="radio" data-theme="a" value="2">';
        html += '</fieldset>';
        $("#names_content").html(html);      
        $("#names_content").trigger('create');

    $(document).on('change',"input[name=radio-choice-0]:radio",function(){
         var tempVal = $('input:radio:checked').val();
         alert(tempVal);
         console.log(tempVal);
    }); 
});

每个动态添加的内容都必须得到增强。有几种解决方案,您可以在此处找到它们。

于 2013-06-04T14:12:57.527 回答