Javascript jQuery焦点/模糊用于具有相同类的每个输入-存在问题

Javascript jQuery焦点/模糊用于具有相同类的每个输入-存在问题,javascript,jquery,html,css,Javascript,Jquery,Html,Css,小提琴在这里: 但是,如果在第一个输入中单击,然后在第二个输入中单击,则第一个输入将关闭,如果单击x按钮,则相同 我需要的是,即使我在另一个输入中单击,它也会保持打开状态,只有当我模糊了它,而不是在另一个输入上聚焦时,它才会关闭。可能吗 代码: 要快速修复当前代码,请使用event.relatedTarget: 问题是,当您点击第二个输入时,第一个输入会触发“模糊”事件。因此,快速修复方法是检查是否存在event.relatedTarget!=空。如果存在相关目标,则停止对第一个输入执行“模糊”

小提琴在这里:

但是,如果在第一个输入中单击,然后在第二个输入中单击,则第一个输入将关闭,如果单击x按钮,则相同

我需要的是,即使我在另一个输入中单击,它也会保持打开状态,只有当我模糊了它,而不是在另一个输入上聚焦时,它才会关闭。可能吗

代码:


要快速修复当前代码,请使用event.relatedTarget:

问题是,当您点击第二个输入时,第一个输入会触发“模糊”事件。因此,快速修复方法是检查是否存在
event.relatedTarget!=空
。如果存在相关目标,则停止对第一个输入执行“模糊”事件


但是我建议对这段代码进行一次完整的重构:)

为什么不这样做:_ALL_INPUTS.not(SELECT_CLASSES).on(“focus”,function(){shrink($(this));});resh close或hide()函数在哪里调用?我不明白你们的回答,伙计们,对不起(感谢您的更新,虽然在您的示例中它似乎仍然做同样的事情,我将进行重构,但不确定如何以及在一个紧迫的期限内完成此lol。)
var inputWdith = '185px';
var inputWdithReturn = '68px';

jQuery('.resize-close').hide();

jQuery(".resize-input").on('focus', function() {
 jQuery(this).animate({
  width: inputWdith
 },400);
 jQuery(this).promise().done(function(){
  jQuery(this).next('.resize-close').show();
 });
}).bind('blur', function() {
 jQuery(this).animate({
  width: inputWdithReturn
 },500);
 jQuery(this).next('.resize-close').hide(); 
});

jQuery('.resize-close').click(function(){
  jQuery(this).prev('.resize-input').animate({
  width: inputWdithReturn
 },500);; 
});