【发布时间】:2010-02-09 21:38:01
【问题描述】:
每当我将复选框放入列表(ol、ul、dl)中,然后在列表上方动态插入按钮时,我都会在 Firefox 中遇到一些奇怪的行为。如果我从这样一个简单的列表开始:
<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。我认为您发现自己有一个错误。
标签: jquery html firefox checkbox