2つの入力要素を持つ非表示のdivがあり、デフォルトでは非表示になっていて、何かにカーソルを合わせると表示され、カーソルを合わせると元に消えるという状況があります。ここで、入力要素の1つがフォーカスされている場合はそのdivが消えないようにし、ぼやけている場合はそのdivが消えないようにします。ある入力から別の入力にフォーカスが移ると、入力の1つがまだフォーカスされているため、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を使用しています。