0

私は次のコードを持っています。ユーザーがマウスを div の上に移動すると表示され、マウスが div の外に移動すると非表示になります。すべて問題ないように見えますが、機能していません。誰でも私の間違いを指摘できますか??

 <script type="text/javascript">

    $(document).ready(function () {


        $(document).delegate('#myDiv', 'mouseover', function () { mouse_OverDiv(); });
        $(document).delegate('#myDiv', 'mouseout', function () { mouse_OutDiv(); });
        function mouse_OverDiv() {

            $('#myDiv').css({ "visibility": "visible" });

        }
        function mouse_OutDiv() {

            $('#myDiv').css({ "visibility": "hidden" });

        }
    });

</script> 
<body>
<form id="form1" runat="server">
<div id="myDiv" style="visibility:hidden">
this is my  div</div>

</form>
</body>
4

4 に答える 4

2

あなたは行方不明#です:

   ||
   vv
$('#myDiv').css({ "visibility": "visible" });

:hoverところで、セレクターを使用して css だけでこれを行うことができます。またdelegate()、 に置き換えられていon()ます。最後に、別の関数を呼び出すために匿名関数を作成する必要はありません。これを行うだけです。

    $(document).delegate('#myDiv', 'mouseover', mouse_OverDiv);

   // Notice there's no `()` invoking the function 
   // since you're using it as a reference.

編集

これを試してください:

var $div = $('#myDiv'),
    hoverIn = function(){
        $div.css('visibility', 'visible');
    },
    hoverOut = function(){
        $div.css('visibility', 'hidden');
    };

$('#myDiv').hover(hoverIn, hoverOut);
于 2012-04-14T06:43:52.207 に答える
1

非表示要素は、幅と高さがなく、ドキュメント内でホバーする場所がないため、マウスオーバー イベントをトリガーできません。

多分CSSの不透明度があなたを助けることができますか?この例も参照してください。

于 2012-04-14T08:02:51.027 に答える
0

$('myDiv').css({ "visibility": "visible" });

する必要があります

 $('#myDiv').css({ "visibility": "visible" });
于 2012-04-14T06:45:53.093 に答える
0

問題は、div を非表示にすると、再びマウスを重ねることができないことです。このサンプルを確認してください

$(document).delegate('#myDiv', 'mouseover', function() {
    mouse_OverDiv();
});
$(document).delegate('#myDiv', 'mouseout', function() {
    mouse_OutDiv();
});

function mouse_OverDiv() {
    $('#myDiv').css({"color": "red"});
}

function mouse_OutDiv() {
    $('#myDiv').css({"color": "blue"});
}
于 2012-04-14T08:05:26.813 に答える