Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery在选择其他项之前保持项可见_Javascript_Jquery_Html_Submenu - Fatal编程技术网

Javascript jquery在选择其他项之前保持项可见

Javascript jquery在选择其他项之前保持项可见,javascript,jquery,html,submenu,Javascript,Jquery,Html,Submenu,我有一个带有子菜单的jquery菜单。也许太简单了,但我对jquery只有一点经验 我想在鼠标悬停事件中显示子菜单,并保持其可见,直到选择不同的菜单选项 我正在使用我在上找到的jquery菜单 这是密码 <script src="droplinemenu.js" type="text/javascript"></script> <script type="text/javascript"> //build menu with DIV ID="myslide

我有一个带有子菜单的jquery菜单。也许太简单了,但我对jquery只有一点经验

我想在鼠标悬停事件中显示子菜单,并保持其可见,直到选择不同的菜单选项

我正在使用我在上找到的jquery菜单

这是密码

<script src="droplinemenu.js" type="text/javascript"></script>

<script type="text/javascript">

//build menu with DIV ID="myslidemenu" on page:
droplinemenu.buildmenu("droplinetabs1")

</script>
<div id="droplinetabs1" class="droplinetabs">
<ul>
<li><a href="http://www.dynamicdrive.com/"><span>Home</span></a></li>
<li><a href="http://www.dynamicdrive.com/style/"><span>CSS Examples</span></a>
  <ul>
  <li><a href="#">Activities 1</a></li>
  <li><a href="#">Activities 2</a></li>
  <li><a href="#">Activities 3</a>
      <ul>
      <li><a href="#">Water Sports 1</a></li>
      <li><a href="#">Water Sports 1</a></li>
      <li><a href="#">Water Sports 1</a></li>
      <li><a href="#">Water Sports 1</a></li>
      </ul>
    </li>
  <li><a href="#">Activities 4</a></li>
  </ul>
</li>
<li><a href="http://tools.dynamicdrive.com"><span>Tools</span></a></li>
<li><a href="http://www.javascriptkit.com/"><span>JavaScript</span></a>
  <ul>
  <li><a href="#">Traveling 1</a></li>
  <li><a href="#">Traveling 2</a></li>
  <li><a href="#">Traveling 3</a></li>
  <li><a href="#">Traveling 4</a>
      <ul>
      <li><a href="#">Africa 1</a></li>
      <li><a href="#">Africa 2</a></li>
      <li><a href="#">Africa 3</a></li>
      <li><a href="#">Africa 4</a>
          <ul>
          <li><a href="#">Kenya 1</a></li>
          <li><a href="#">Kenya 2</a></li>
          <li><a href="#">Kenya 3</a></li>
          <li><a href="#">Kenya 4</a></li>
          <li><a href="#">Kenya 5</a></li>
          </ul>
        </li>
      </ul>
    </li>
  <li><a href="#">Traveling 5</a></li>
  </ul>
</li>
<li><a href="http://www.cssdrive.com"><span>Gallery</span></a></li>
</ul>
</div>
js文件中有这样一个

/*********************
//* jQuery Drop Line Menu- By Dynamic Drive: http://www.dynamicdrive.com/
//* Last updated: May 9th, 11'
//* Menu avaiable at DD CSS Library: http://www.dynamicdrive.com/style/
*********************/
var droplinemenu={

arrowimage: {classname: 'downarrowclass', src: 'down.gif', leftpadding: 5}, //customize down arrow image
animateduration: {over: 200, out: 100}, //duration of slide in/ out animation, in milliseconds

buildmenu:function(menuid){
    jQuery(document).ready(function($){
        var $mainmenu=$("#"+menuid+">ul")
        var $headers=$mainmenu.find("ul").parent()
        $headers.each(function(i){
            var $curobj=$(this)
            var $subul=$(this).find('ul:eq(0)')
            this._dimensions={h:$curobj.find('a:eq(0)').outerHeight()}
            this.istopheader=$curobj.parents("ul").length==1? true : false
            if (!this.istopheader)
                $subul.css({left:0, top:this._dimensions.h})
            var $innerheader=$curobj.children('a').eq(0)
            $innerheader=($innerheader.children().eq(0).is('span'))? $innerheader.children().eq(0) : $innerheader //if header contains inner SPAN, use that
            $innerheader.append(
                '<img src="'+ droplinemenu.arrowimage.src
                +'" class="' + droplinemenu.arrowimage.classname
                + '" style="border:0; padding-left: '+droplinemenu.arrowimage.leftpadding+'px" />'
            )
            $curobj.hover(
                function(e){
                    var $targetul=$(this).children("ul:eq(0)")
                    if ($targetul.queue().length<=1) //if 1 or less queued animations
                        if (this.istopheader)
                            $targetul.css({left: $mainmenu.position().left, top: $mainmenu.position().top+this._dimensions.h})
                        if (document.all && !window.XMLHttpRequest) //detect IE6 or less, fix issue with overflow
                            $mainmenu.find('ul').css({overflow: (this.istopheader)? 'hidden' : 'visible'})
                        //$targetul.dequeue().slideDown(droplinemenu.animateduration.over)
                        $targetul.dequeue().show()
                },
                function(e){
                    var $targetul=$(this).children("ul:eq(0)")
                    $targetul.dequeue().hide()
                    //$targetul.dequeue().slideUp(droplinemenu.animateduration.out)
                }
            ) //end hover
        }) //end $headers.each()
        $mainmenu.find("ul").css({display:'none', visibility:'visible', width:$mainmenu.width()})
    }) //end document.ready
}
}
/*********************
//*jQuery下拉菜单-按动态驱动器:http://www.dynamicdrive.com/
//*最后更新日期:2011年5月9日
//*可从DD CSS库获得的菜单:http://www.dynamicdrive.com/style/
*********************/
变量下拉菜单={
箭头图像:{classname:'downarrowclass',src:'down.gif',leftpadding:5},//自定义箭头图像
animateduration:{over:200,out:100},//滑入/滑出动画的持续时间,以毫秒为单位
构建菜单:函数(menuid){
jQuery(文档).ready(函数($){
变量$main菜单=$(“#”+menuid+“>ul”)
var$headers=$mainmenu.find(“ul”).parent()
$headers.每个(函数(i){
变量$curobj=$(此)
var$subul=$(this.find('ul:eq(0)'))
this._dimensions={h:$curobj.find('a:eq(0)').outerHeight()}
this.istopheader=$curobj.parents(“ul”).length==1?true:false
如果(!this.istopheader)
$subul.css({左:0,上:this.\u dimensions.h})
var$innerheader=$curobj.children('a').eq(0)
$innerheader=($innerheader.children().eq(0).is('span'))?$innerheader.children().eq(0):$innerheader//如果头包含内部span,则使用该值
$innerheader.append(
''
)
$curobj.hover(
职能(e){
var$targetul=$(this).children(“ul:eq(0)”)
如果($targetul.queue().length,那么我所做的是:

  • 悬停
    时,我在
    var-prevous;

  • mouseleave
    上,我保持
    ul
    可见,但前提是下一次悬停
    div
    没有子对象

  • 悬停

    if (previous!= null ) {
        previous.css('display','none');
    }
    
    if (previous!= null ) {
        previous.css('display','block');
    }
    
    结束悬停

    if (previous!= null ) {
        previous.css('display','none');
    }
    
    if (previous!= null ) {
        previous.css('display','block');
    }
    


    注意:这个脚本编辑起来很复杂,所以我建议你找一些更简单的东西,你能制作一个吗?是的,这是谢谢你,这对我来说很有用。对于其他一些脚本,它不起作用,因为子菜单也有child,并且隐藏了第一个子菜单。没关系,对于我的应用程序来说,如果它看起来足够好的话。