javascript - 将焦点绑定(bind)到单选按钮

标签 javascript jquery

我正在 Chrome 12 中工作,我的代码如下。

HTML:

<input type="radio" class="tooltip" title="test1" name="group" value="1"> 1<br>        
<input type="radio" class="tooltip" title="test2" name="group" value="2"> 2<br>
<input type="radio" class="tooltip" title="test3" name="group" value="3" checked> 3<br>
<input type="text" class="tooltip" value="4" title="test4"><br>
<div class="result"> THIS SHOULD UPDATE WHEN YOU FOCUS ON ONE OF THE INPUTS </div>

​ JavaScript:

$('.tooltip').bind('focus', function(ev) {
 $('.result').html( this.value );
});

( fiddle )

是否可以将焦点事件绑定(bind)到单选按钮?你能提供替代方案吗?

最佳答案

如果您通过键盘设置焦点,则仅当您单击按钮时它才起作用,您的原始代码适用于所有浏览器。

看起来只有 IE 在单击按钮时才会触发 focus 事件,Chrome 只会触发 click 事件。请注意,如果您单击其中一个然后按 TAB,即使在 Chrome 中,它也能正常工作。

也许是一个错误,也许是设计使然,无论如何,只需处理两者即可:

$(document).ready(function() {
    var _currentExecuting = false;
    $(".tooltip").bind("focus click", function() {
        if (!_currentExecuting) { 
            var oResult = $(".result");
            oResult.html(oResult.html() + "yoy oi " + this.value + "<br />"); 
            _currentExecuting = true;
            window.setTimeout(function() {
                _currentExecuting = false;
            }, 100);
        }
    });
});

由于 IE 浏览器在单击时会触发焦点事件和单击事件,因此我必须设置全局标志,然后在执行任何代码之前检查此标志,并在短时间间隔后自动清除它。

Updated fiddle .

关于javascript - 将焦点绑定(bind)到单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413931/

相关文章:

javascript - 非常简单的 Ember 1.13.3 应用程序中的路由转换内存泄漏

javascript - 在 Shiny 的应用程序中动态选择多个选项卡

javascript - 如何使用functions.php文件Wordpress中的参数对php函数进行ajax调用

javascript - CakePHP 从表单中获取数据

jquery-plugins - jQuery idTabs插件选项卡点击功能

javascript - jquery 保持值(value)被点击的项目

javascript - 有没有办法(使用 Lodash 或 Underscore)来查看字符串数组中的字符串是否包含另一个数组中的子字符串?

Javascript:使用 id 从 php 脚本中提取正确的 json

jquery - jQuery 是否采用了向后的方法链接方法?

javascript - IONIC 框架(AngularJs 和 JavaScript)|是否推荐基于 SOAP 的 Web 服务?