1

我有一个 div 用作文本框

<div class="field-wrapper">
     Name
     <div id="name" class="name" tabindex="-1">
         Enter a name
     </div>

我想检测 div 文本框的焦点和非焦点事件。

$('.name').focus(function() {
    console.log("focused")
});

$('.name').focusout(function() {
    console.log("unfocused");
});

但是,每当我单击 div 时,都会触发focus和事件。focusout为什么呢?

4

2 回答 2

0

您的代码似乎工作正常。这是假设您将其包装在某种 dom 准备好的小提琴中:

$(function(){
   $('.name').focus(function() {
    console.log("focused")
   });

  $('.name').focusout(function() {
    console.log("unfocused");
  });
});

http://jsfiddle.net/BkJLn/

于 2013-06-30T08:52:50.503 回答
0

一旦我禁用了应用于 div 元素的 jEditable,问题就消失了。所以似乎 jEditablefocusout在元素聚焦时以某种方式调用事件。

话虽如此,我使用focusand的主要目的focusout是捕获用户输入的任何更改,我应该使用 jeditable 的功能来完成。

于 2013-06-30T09:11:37.750 回答