这就是事情。
我有两个输入框。狗和猫。 如果我将鼠标悬停在狗身上,狗和猫都会变绿。工作良好。 如果我在Dog上单击鼠标,Dog和Cat都会变黄。工作良好。 随着狗的焦点,狗和猫应该保持黄色,即使我可以在屏幕上移动我的鼠标。
但是,我的问题是,当Dog处于聚焦状态时(I-beam光标在Dog输入框内闪烁),将鼠标移出Dog会激活mouseleave。而不是狗和猫保持黄色(这是我想要的),猫和狗都变成蓝色。然后,当我做一个鼠标悬停时,猫和狗都变成了绿色。但是如果Dog处于焦点状态(即当I-Beam在Dog内部闪烁时),我希望猫和狗都保持黄色。
为什么我希望狗和猫在I-beam内部闪烁时始终保持黄色Dog是这样的:用户点击目标输入框(Dog)后,他将使用他的双手在键盘上打字。在这样做时,他可以将鼠标移到一边,鼠标光标可以移出输入框Dog。我仍然希望Dog和Cat都是黄色的(就像点击Dog时一样),这样用户就可以专注于两个输入框。不幸的是,我的代码就像它一样(见下文和我的JSFiddle),我没有得到我想要的东西。救命啊!?
这是我的代码。
<input type="text" value="Rover" id="dog" />
$("#dog").focus(function() {
$("#dog").css("background-color","yellow");
$("#cat").css("background-color","yellow");
});
$("#dog").hover(function() {
$("#dog").css("background-color","green");
$("#cat").css("background-color","green");
});
$("#dog").mouseleave(function() {
$("#dog").css("background-color","blue");
$("#cat").css("background-color","blue");
});
$("#dog").blur(function() {
$("#dog").css("background-color","white");
$("#cat").css("background-color","white");
});
这是我的傻瓜: http://jsfiddle.net/frankiekam/A586v/5/
我已经在我的代码中尝试了bind(),unbind()以及(但是:hover),但它们不起作用。我认为这只是我。这里需要一些帮助。任何人吗?
Frankie Kam,马来西亚。