2014-09-23 42 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