我有一个输入类型的文本元素和锚元素,现在我不想在焦点已经在输入文本元素上时忽略该锚点标记的焦点。我试过跟随,但它不起作用。
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();
})
以上对我不起作用。有人能告诉我这里缺少什么吗?
答案 0 :(得分:1)
当点击其他东西时,锚点总是会失去焦点,绕过它的方法是将焦点重置为输入:
var active = null;
$('#nothing').on({
mousedown: function() {
active = document.activeElement;
},
mouseup: function() {
if (active) active.focus();
},
click: function(e) {
e.preventDefault();
}
});
答案 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();
})