Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery焦点事件在选项卡更改时重复_Jquery_Events_Focus - Fatal编程技术网

jQuery焦点事件在选项卡更改时重复

jQuery焦点事件在选项卡更改时重复,jquery,events,focus,Jquery,Events,Focus,我注意到这是一个非常奇怪的错误。 我使用.focus()事件在触发时将div追加到另一个div。 代码正常,工作正常,但是当我切换选项卡(我的意思是打开另一个站点),然后返回到我使用的.focus事件时,结果会重复。 如果您想查看代码,请告诉我,但这是一个简单的事件调用,没有任何花哨的内容 这是一些代码 <div id="song"> <input type="text" id="post_title" name="title" value="Artist - Song"

我注意到这是一个非常奇怪的错误。 我使用
.focus()
事件在触发时将div追加到另一个div。 代码正常,工作正常,但是当我切换选项卡(我的意思是打开另一个站点),然后返回到我使用的
.focus
事件时,结果会重复。 如果您想查看代码,请告诉我,但这是一个简单的事件调用,没有任何花哨的内容 这是一些代码

<div id="song">
   <input type="text" id="post_title" name="title" value="Artist - Song" /><br />               
</div>

   var songSuggestion = '<div id="titleSuggest" style="width:270px; background:#37819d; color:white; margin:0 auto; ">Try this!</div>';

$('#post_title').focus(function(event){ 
    $(this).parent().append(songSuggestion);
    });

$('#post_title').blur(function(){
    $(this).parent().find('#titleSuggest').remove();
});


var songSuggestion=‘试试这个!’; $('post_title')。焦点(函数(事件){ $(this.parent().append(songSuggestion); }); $('#post_title').blur(函数(){ $(this.parent().find(“#titleSuggest”).remove(); });
编辑:
这只发生在chrome上,在firefox上永远不会发生

好吧,所以我尽了最大的努力,想弄清楚你想要建立什么。如果你想再详细一点,我可以帮你。下面是代码,代码就在下面

我建议您不要附加div,而是隐藏某个div,然后在启动focus函数后显示数据

HTML

JQuery

$("input").focus(function() {

   if ($(this).next(".append-div").is(":hidden")) {

      $(this).next(".append-div").show();

   } else {
   }

});

有什么问题尽管问吧

因此,如果yu有3个文本框,则第三个文本框将调用3次。你现在有主意了。是否用我的代码示例更新了itI。是的,我也考虑过这一点,但我希望div是动态创建的(检查我的代码),这是我通常建议使用服务器端脚本(PHP、Python、Ruby)的地方,但我可以尝试找出一个只使用JQuery的方法。如果我错了,请纠正我,但你不能这样做-->
html { margin: 10px; }

input { 
  border: 1px solid #000; 
  padding: 3px 7px; 
  width: 200px; 
  margin-top: 10px; 
  display: block; 
}

.append-div { 
  width: 200px; 
  padding: 3px 7px; 
  height: 15px; 
  background-color: #999; 
  border: 1px solid #2d2d2d; 
  margin-bottom: 20px; 
  display: none; 
  color: #000; 
}
$("input").focus(function() {

   if ($(this).next(".append-div").is(":hidden")) {

      $(this).next(".append-div").show();

   } else {
   }

});