作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当用户关注输入字段时,我们使用自定义 jquery 插件来处理帮助弹出窗口。然而我偶然发现了一个奇怪的问题。该插件使用以下代码来触发帮助弹出窗口:
$(this).focus(function(){
// Show popup help panel here
});
但是,如果将此代码应用于 type="checkbox"的输入,则会显示帮助弹出窗口,但复选框值很快就会否定自身,因此看起来没有从勾选更改为未勾选,反之亦然。这种情况发生在IE9和FF6中(其他浏览器没有尝试过)。我尝试了这个非常简单的代码只是为了确保我不会发疯,但问题仍然发生:
... 在 html 中:
<input id="test" type="checkbox" checked="checked" />
...在 head - javascript
$('#test').focus(function(){
alert("help!");
});
显示了警报,但复选框值未更改(或者已更改但随后又更改回来,正如我认为正在发生的那样)。
任何人都可以阐明这一点吗?
最佳答案
为什么要绑定(bind)复选框的“焦点”?
这对我来说没有多大意义,因为“焦点”主要用于文本框或文本区域。我会使用 .click
或 .change
来代替,我怀疑你会有更好的运气。
在 jsfiddle (http://jsfiddle.net/65CRb/1) 上进行了一些测试,绑定(bind) focus
在 Chrome 中根本不起作用。我怀疑 IE/FF 中发生了一些奇怪的事件,当您集中注意力时,这些事件不会传播到实际控件本身。
关于Jquery focus() 带有复选框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122510/
我是一名优秀的程序员,十分优秀!