Jquery不会在动态内容上添加样式

时间:2013-10-14 07:41:38

标签: jquery

我正在动态地向HTML添加复选框,而jquery不会更新样式。我读到了类似的问题并尝试在父级上调用.trigger(“create”),但仍无法正常工作。以下是小提琴内容:http://jsfiddle.net/ftraian/A4duX/1/

<div id="checkboxes"></div>
Enter new labels here: <textarea></textarea>

从textarea读取标签并将其添加到复选框div:

的脚本
var index = '1';

$(document).ready(function () {
    var text = 'Predifined label';
    var cbElem = $("<input type=\"checkbox\" id=\"" + index + "\">");
    var labelElem = $("<label for=\"" + index + "\">" + text + "</label>&nbsp;");
    $('#checkboxes').append(cbElem, labelElem);
    $('#checkboxes').buttonset();
});

$('textarea').bind("enterKey", function () {
    index++;
    var text = $('textarea').val().replace(/(\r\n|\n|\r)/gm, "");
    var cbElem = $("<input type=\"checkbox\" id=\"" + index + "\">");
    cbElem.button();
    var labelElem = $("<label for=\"" + index + "\">" + text + "</label>&nbsp;");
    $('#checkboxes').append(cbElem, labelElem);
    $('#checkboxes').trigger("create");
    $('textarea').val('');
});
$('textarea').keyup(function (e) {
    if (e.keyCode == 13) {
        $(this).trigger("enterKey");
    }
});

1 个答案:

答案 0 :(得分:0)

Demo

删除该行:

cbElem.button();

并在bind()事件结尾添加以下行:

$('#checkboxes').buttonset();

旁注:jQuery 1.7不推荐使用bind(),应该使用on(虽然这不是导致问题的原因)。