除非悬停在某个元素上,否则防止失去焦点

时间:2014-06-14 02:07:24

标签: javascript jquery html

我有一个包含textarea #content和输入文本框#name的页面。用户点击#content后,我想阻止他失去该textarea的焦点,除非他点击#name

我尝试了以下内容:

// Prevent loss of focus for textarea
$("#content").on("blur", function(event) {
    $('#name').mouseover(function() {
       return true;
    });
    event.preventDefault();
    this.focus();
    return false;
});

它可以很好地防止元素失去焦点。但是我检查他是否正在徘徊#name然后返回的想法不起作用。

2 个答案:

答案 0 :(得分:2)

here窃取代码以获取触发blur的元素。

var clicky;

$(document).mousedown(function(e) {
    // The latest element clicked
    clicky = $(e.target);
});

$("#content").on("blur", function(event) {
    if (clicky.attr('id') == 'name') {
        return true;
    }
    event.preventDefault();
    this.focus();
    return false;
});

fiddle

答案 1 :(得分:1)

这样的事,也许?

$(document).ready(function(){
   var id;
   $('#content').on('blur',function(){
       $(":input").focus(function(){
          id = this.id;
          if(id != 'username' && id != 'content'){ // sorry, changed your id from name to username. 
              $('#content').focus();   
              }
           });       
      });
  });

工作小提琴:http://jsfiddle.net/ugx3S/