0

有没有什么简单的方法可以在点击链接后触发 jQuery .focus ?也许有一个 jQuery 事件混合了这些?

HTML:

<a href="#" class="focus">Focus</a>
<a href="#" class="click">Click</a>

JavaScript:

$(document).ready(function(){

    // Focus Code
    $('.focus').focus(function(){
        alert('focus!');
    });

    // My noobish try to focus on click, will probably break the universe
    /* $('.focus').click(function(){
        $(this).focus();
    }); */

    // This should work, but I want this link to really FOCUS
    /* $('.focus').click(function(){
        alert('focus!');
    }); */

    // Click Code
    $('.click').click(function(){
        alert('click!');
    })

})

我要提醒“重点!” 单击“Focus”链接后,不仅要按 TAB。

有类似的问题,但它更复杂,超过 2 年:jQuery 处理焦点和点击元素

这是 jsfiddle 玩:

http://jsfiddle.net/JVTKc/

4

1 回答 1

0

我认为你想要实现的是将焦点放在点击、TAB 和焦点事件上。

要查看console.log()我在下面使用的内容,请在浏览器中打开控制台。

HTML:

<a href="#" class="focus-test">Focus Test</a>

Javascript / jQuery:

$(document).ready(function(){
    $('.focus-test').focus(function(){
        //not using alert because it causes a loop because you re-focus after you dismiss the alert.
        console.log('focus and click');
    });
    $('.focus-test').click(function(){
        this.focus();
    });
})

jsFiddle:http: //jsfiddle.net/JVTKc/4/


只是为了添加注释,您永远不应该自己触发事件,而是调用一个函数来处理这两个事件,请参见下面的代码。

HTML:

<a href="#" class="focus-test">Focus Test</a>

Javascript / jQuery:

$(document).ready(function(){
    $('.focus-test').focus(function(){
        userInteraction();
    });
    $('.focus-test').click(function(){
        userInteraction();
    });
    function userInteraction(){
        //not using alert because it causes a loop because you re-focus after you dismiss the alert.
        console.log('focus and click and tab');
    }
})

http://jsfiddle.net/JVTKc/5/

于 2013-08-07T01:10:22.360 回答