Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Javascript jQuery,奇怪的焦点行为_Javascript_Jquery_Focus_Tagging - Fatal编程技术网

Javascript jQuery,奇怪的焦点行为

Javascript jQuery,奇怪的焦点行为,javascript,jquery,focus,tagging,Javascript,Jquery,Focus,Tagging,问题就在这里。我的页面中有多个标签表单。他们应该是独立的,但有一种奇怪的行为。如果我以第一种形式书写或执行任何其他操作,然后按下第二种形式标签上的“X”,它不会注意到我正在使用另一种形式。我试图更好地解释它:如果我在表单中工作时按X $(this).attr('id') 返回正确的id。如果在处理另一个表单时按X,则相同的代码返回错误的id。显然,它返回我正在处理的表单的id 我认为这个问题与一些奇怪的焦点条件有关(键盘在一个窗体上,而鼠标指针在另一个窗体上单击)。我该怎么解决这个问题 编辑

问题就在这里。我的页面中有多个标签表单。他们应该是独立的,但有一种奇怪的行为。如果我以第一种形式书写或执行任何其他操作,然后按下第二种形式标签上的“X”,它不会注意到我正在使用另一种形式。我试图更好地解释它:如果我在表单中工作时按X

$(this).attr('id') 
返回正确的id。如果在处理另一个表单时按X,则相同的代码返回错误的id。显然,它返回我正在处理的表单的id

我认为这个问题与一些奇怪的焦点条件有关(键盘在一个窗体上,而鼠标指针在另一个窗体上单击)。我该怎么解决这个问题

编辑:表单的html

 <form>

<input id="tagbox_infodisc_discussion_65" class="tag_field" object_type="infodisc_discussion" object_id="65" owner="Infodisc" owner_id="1" cancreatetag="1" canaddtag="1" canremovetag="1" value="['hi mom','efaefea']" $type="text" style="display: none; "><div id="tagbox_infodisc_discussion_65_tagsinput" class="tagsinput"><span class="tag"><span>hi mom&nbsp;&nbsp;</span><a href="#" title="Removing tag">x</a></span><span class="tag"><span>efaefea&nbsp;&nbsp;</span><a href="#" title="Removing tag">x</a></span><div id="tagbox_infodisc_discussion_65_addTag"><input id="tagbox_infodisc_discussion_65_tag" value="" data-default="" style="color: rgb(0, 0, 0); " class="ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true"></div><div class="tags_clear"></div></div>

</form>

嗨,妈妈,伊法菲
试试这个:

$('input').live('click', function(){
  console.log($(this).prop('id'));
});

只是想澄清一下。。。如果您使用的表单与您单击的表单不同,它总是返回FormA,还是总是返回另一个表单(FormA中的FormB,FormB中的FormA)?@nachito it返回我正在使用的表单。在本例中,如果我刚刚编写了标记“tag2”,然后按下“hi mom”,它将返回包含“tag2”的表单的id。正确的ID将是包含“嗨妈妈”的表单的ID,因为这是我删除标签时应该考虑的ID。remove函数做什么并不重要,因为问题就在这之前。我刚刚将一个函数绑定到单击操作。实际上,它可能是
#id
。class
返回“undefined”。我使用$('input')而不是表单,因为id在输入中。我将用这个表单的html编辑第一篇文章。嗯,prop('id')是错误的,我想你是指attr('id')。无论如何,使用$(this.parent().parent().attr('id')我可以访问输入字段的id,而十字没有id。