jQuery 单击复选框不会在 Firefox 中检查

标签 jquery firefox

具体来说,输入类型复选框的内存 dom 不会在 FireFox 中接收“checked”属性(或任何其他选中指示符)。

注释行可以取消注释以查看测试通过,但目前您将在 Firefox 中看到测试失败。

http://jsfiddle.net/mE3xb/2/

var cb = $('<input type="checkbox" />')
//var cb = $('input'); 
if (cb.is(':checked')) alert("checkbox says it's already checked"); 
cb.click(); 
if (cb.is(':checked')) alert("checkbox clicked correctly!"); 
else alert("fail!"); 

我是否在做不标准的事情?有什么建议吗?我基本上依赖 jQuery .click 来实际检查 UI 中的复选框(并且我不想使用 .attr、.prop、.val,因为它会破坏我正在进行的良好封装。)

最佳答案

由于您使用的是 jQuery 1.4.3,看起来您最好的选择是:

cb[0].setAttribute('checked', 'checked'); // plain old vanilla JS

<强> jsFiddle Demo - 在 FireFox、Chrome 和 IE8 中测试

.click() 在 Firefox 中的许多奇怪情况下不起作用(这在该浏览器中本质上是错误/不同的)。我想是因为它实际上在 DOM 上还不可用,所以它不知道这个事件在哪里。这是 .prop() 等事物存在的众多原因之一。

关于jQuery 单击复选框不会在 Firefox 中检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463971/

相关文章:

javascript - JQuery UI 使用什么框架?

javascript - 同步ajax调用不会在chrome中触发beforesend事件

http - 为什么 Firefox 并不总是为 POST 请求发送 HTTP Origin header ?

css - 为什么这个 css 定位在 FF8 中不起作用?

python - 如何设置 Selenium Python WebDriver 默认超时?

jquery - 通过透明覆盖使链接可点击

jquery - 链接和 Div 脚本同时运行 HTML/JSF/JQuery

html - 在 Firefox 中降低闪烁?

CSS:页面分为 3 列,无法在 Firefox 上运行

javascript - 动态加载 css 样式表在 IE 上不起作用