繁体   English   中英

在鼠标悬停时显示/隐藏div不起作用

[英]show/hide div on mouseover not working

我有以下代码,我想当用户将鼠标移到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>

您缺少#

   ||
   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);

不可见元素无法触发鼠标悬停事件,因为它们没有宽度和高度,因此在文档中没有要悬停的位置。

也许CSS的不透明度可以帮助您? 另请参见此示例

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

应该

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

问题是,当您隐藏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"});
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM