2014-09-23 41 views
0

当jquery的动态添加复选框,位置不正确: enter image description herejQuery的动态复选框位置,合并实施例发现

我有添加复选框dynamically中的jsfiddle一个例子(从stakoverflow截取)。

我也有一个link声称,他们这样做是正确添加的位置,

<!-- language: lang-js --> 
var $myCheckboxLabel = $("label[for='myCheckbox']"); 
$myCheckboxLabel.position({my:"left", at:"right", of:$myButton }); 

但这并不与例子提到绑在所有:

for (var i = 0; i < 40; i++) { 
    $("fieldset").append('<input type="checkbox" name="' + name + '" id="id' + i + '"><label for="id' + i + '">' + name + ' ' + i + '</label>'); 
} 

可有人请帮助符合以设置在循环中添加的复选框的位置,因此它不会彼此紧挨着显示,而是在下一行中显示。

回答

1

对于您要做的事情,您的Javascript很不错 - 它会生成正确的HTML。问题在于它们是以“内联”的方式显示的,这意味着它们都是并排排列的,尽可能多的放在一条线上,然后它会包围一条线。

你想要的是将它们显示为一个“块”元素,这意味着它有自己的行,下一个元素将不得不在它下面。你可以使用CSS来让他们这样做:

fieldset input[type=checkbox] { /* this can be more specific if you need it to be */ 
    display: block; 
} 

Here's a fiddle demo'ing this。

+0

非常感谢,我能够复制它,有没有办法让标签的权利的块请?它的当前复选框,并在下一行中只有标签 – 2014-09-23 11:41:44

+0

更改您正在追加的标记''然后在'label'上设置'display:block;'而不是 – Joe 2014-09-23 11:44:05

+0

请在此行上提供任何建议:$( “fieldset”)。append(''); – 2014-09-23 11:48:16