如何避免失去对锚标签点击的关注?

时间:2013-07-24 07:26:24

标签: jquery html

我有一个输入类型的文本元素和锚元素,现在我不想在焦点已经在输入文本元素上时忽略该锚点标记的焦点。我试过跟随,但它不起作用。

HTML:

<input type = 'text' value='click here first' />
<a href='javascript:void(null);' id='nothing'>do nothing</a>

jQuery代码:

$('#nothing').bind('click', function(e){
    e.preventDefault();
})

以上对我不起作用。有人能告诉我这里缺少什么吗?

2 个答案:

答案 0 :(得分:1)

当点击其他东西时,锚点总是会失去焦点,绕过它的方法是将焦点重置为输入:

var active = null;

$('#nothing').on({
    mousedown: function() {
        active = document.activeElement;
    },
    mouseup: function() {
        if (active) active.focus();
    },
    click: function(e) {
        e.preventDefault();
    }
});

FIDDLE

答案 1 :(得分:0)

我遇到类似的问题尝试使用'mousedown'而不是click事件。

以下是DEMO

<input type = 'text' value='click here first' />
<a href='javascript:void(null);' id='nothing'>clicking this does not loose the focus from input field!</a>

$('#nothing').bind('mousedown', function(e){
    e.preventDefault();
})