0

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を使用しています。

4

2 に答える 2

1

これを試して、

// 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-18T07:02:49.510 に答える
0

入力ボックスにいくつかのクラスを与え、それに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");
        }
    }
});

注:ライブの代わりにデリゲートを使用してください

于 2011-02-18T06:49:08.997 に答える