2013-10-14 179 views
1

我动态地添加复选框到HTML和jquery不更新样式。我阅读了有关类似的问题,并尝试在父级上调用.trigger(“create”),但仍然无效。下面是小提琴内容:http://jsfiddle.net/ftraian/A4duX/1/jquery不添加动态内容样式

<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"); 
    } 
}); 
+2

尝试使用jquey .on() –

回答

0

Demo

删除行:

cbElem.button(); 

并添加下面的行,在结尾处在bind()事件:

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

旁注:bind()从jQuery的1.7弃用,on应使用(虽然这不是你的问题的原因)。

+0

谢谢,它的工作原理。我还用on()替换了bind() – ftraian