2013-10-14 225 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