mouseout和查找hide()和show()的替代项时出现问题



我正在使用jQuery创建一个简单但大的下拉菜单。我有一些关于编辑的问题,希望能得到一些帮助。

首先,当我使用mouseover()函数将鼠标悬停在链接"meny_1"上时,子菜单"undermeny_a"将显示show()函数。子菜单位于名为"undermeny_1"的div中。使用mouseout()函数可以移除div。但是,如果我将该div划分为其他div,mouseout()函数将不起作用。就好像它不再检测主div"undermeny_1"了?我想知道如何解决这个问题?

其次,我想知道是否有其他选择可以使用show()和hide()。我希望div元素位于页面上方的背景中,但在我将鼠标悬停在链接"meny_1"上方之前不可见?在我曾经使用可见性或隐藏的纯javascript中,jQuery可以做些什么?隐藏某些内容而不删除元素?需要一些帮助。谢谢

$(document).ready(function() {   
    $("#meny_1").mouseover(function(){
        $("#underMeny_1").show();
    });
    $("#underMeny_1").mouseout(function(){
        $("#underMeny_1").hide();<br/>
    });<br/> 
});

关于鼠标事件,mouseleave()的jQuery API显示了mouseleavee()和mouseout()之间的差异,这可能会帮助您。

本质上,当鼠标进入或离开元素的边界时,mouseenter()/mouseleve()事件就会触发。其中,每当鼠标从一个<div>移动到另一个时,mouseover()/mouseout()事件就会触发。

如果我理解你的可见性问题,show()和hide()可以像你之前一样工作,hide(0)会立即隐藏元素。你想要不同的效果吗?

您可以尝试切换()。我不确定你想要什么样的考试。toggle()是show()和hide()的另一个可用选项。如果元素可见,则隐藏该元素,反之亦然

您可以尝试animate/(fadein/fadeout)/fadeout。

当你把鼠标从菜单中移出时,为什么不删除菜单,那么你就可以使用.hooper()方法了。为什么它不是一个ul列表?

要回答您的第二个问题:在不删除元素的情况下隐藏某些内容?要使用jquery隐藏,可以使用$("#div").hide()或$("#div").css("display","none");

如果您正在寻找渐变效果,那么您可以使用渐变/渐变来代替显示/隐藏。

然而,如果你只想隐藏可见性,而没有效果,那么,代替显示/隐藏,我个人更喜欢创建这样的隐藏css类。

.hide{display:none; !important}

然后使用.addClass(hide)/.removeClass(隐藏)

更多详细信息,请访问http://www.nitinh.com/2011/05/how-to-properly-hide-and-show-elements-using-javascript/

关于你的第一点,我不确定我是否理解正确。最好你能给我们一个演示链接。

最新更新