我有一个隐藏的div,有两个输入元素,默认情况下它会隐藏起来,只有当我悬停一些东西时才会显示出来,如果我悬停在外面,它就会消失。现在,我希望div不会在其中一个输入元素被聚焦时消失,如果模糊则消失。我已经解决了这一部分,直到,如果焦点从一个输入转移到另一个输入,div将消失,我不希望它消失,因为其中一个输入仍然是焦点。
下面是我的代码:
// code with the problem I think.
$('#inputText1, #inputText2').live("blur", function() {
if ($('#myDiv').is(":visible")) {
if (!$(this).hasClass("jqTransformInputWrapper_focus")) {
$('#myDiv').fadeOut("slow");
}
}
});
// hover to show and hide the div
$(".visibleDiv").hover(
function() {
$('#myDiv').fadeIn("slow");
},
function() {
if(!$(this).find(".jqTransformInputWrapper").hasClass("jqTransformInputWrapper_focus")) {
$('#myDiv').fadeOut("slow");
}
}
);我的Html:
<div class="visibleDiv">
hover me
<div id="myDiv">
<input name="inputText1" id="inputText1" type="text" />
<input name="inputText2" id="inputText2" type="text" />
</div>
</div>顺便说一句,我对输入元素使用了jqTransform。
发布于 2011-02-18 15:02:50
尝尝这个,
// code with the problem I think.
$('#inputText1, #inputText2').live("blur", function() {
if ($('#myDiv').is(":visible")) {
if (!$(this).hasClass("jqTransformInputWrapper_focus")) {
$('#myDiv').fadeOut("slow");
}
}
}).live("focus",function(){
$('#myDiv').stop(true,true).show();
});发布于 2011-02-18 14:49:09
为输入框提供一些类,并在其上应用jQuery
<div class="visibleDiv">
hover me
<div id="myDiv">
<input name="inputText1" id="inputText1" type="text" class="inputbox" />
<input name="inputText2" id="inputText2" type="text" class="inputbox"/>
</div>
</div>
// now this will work
$('.inputbox').live("blur", function() {
// u can also use this
// if($(this).parent().is(":visible") )
if ($('#myDiv').is(":visible")) {
if (!$(this).hasClass("jqTransformInputWrapper_focus")) {
$('#myDiv').fadeOut("slow");
}
}
});注意:使用delegate而不是live
https://stackoverflow.com/questions/5038414
复制相似问题