我有一个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
事件都会被触发。为什么会这样?
您的代码似乎运行良好。这是小提琴,假设你把它包在某种准备好的dom里:
$(function(){
$('.name').focus(function() {
console.log("focused")
});
$('.name').focusout(function() {
console.log("unfocused");
});
});
http://jsfiddle.net/BkJLn/
一旦我禁用了应用于div元素的jEditable,问题就消失了。因此,当元素聚焦时,jEditable似乎以某种方式调用了focusout
事件。
话虽如此,我使用focus
和focusout
的主要目的是捕捉用户输入的任何更改,我应该使用jeditable的函数来完成这一操作。