每当我将复选框放入列表(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