每當我將複選框放入列表(ol,ul,dl)中,然後在列表上方動態插入按鈕時,我在Firefox中會遇到一些奇怪的行爲。如果我開始用一些簡單的列表是這樣的:頁面重新加載後在複選框列表中移動複選框 - Firefox only
<dl class="c">
<dt><label for="a1"><input type="checkbox" id="a1" />one</label></dt>
<dt><label for="a2"><input type="checkbox" id="a2" />two</label></dt>
<dt><label for="a3"><input type="checkbox" id="a3" />three</label></dt>
</dl>
,並添加一些jQuery的是這樣的:
$(document).ready(function(){
var a = $('<button type="button">a</button>');
var b = $('<button type="button">b</button>');
$('<div/>').append(a).append(b).insertBefore($('.c'));
});
...然後在Firefox中打開它,它看起來不錯,在第一。 但檢查第一個複選框,重新加載頁面,並且複選標記跳轉到第二個框。重新加載,然後跳到第三個。再次重新加載,並且沒有複選框被選中。
如果我通過刪除其中一個附加調用而忽略其中一個按鈕,那很好。如果我將按鈕更改爲div或類似的東西,那很好。如果我用div替換dl標籤(並去除dt標籤),那就沒問題。但我需要兩個按鈕,並且複選框必須位於我正在嘗試構建的列表中。
有誰知道是什麼原因造成的?
甚至還有怪物,我加載你的HTML,然後選中框1,然後運行你的js兩次。當我刷新時,檢查框是框3.我認爲你已經發現自己的錯誤。 – 2010-02-09 21:54:29