Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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_Menu - Fatal编程技术网

Javascript JQuery选择器问题(我认为)

Javascript JQuery选择器问题(我认为),javascript,jquery,menu,Javascript,Jquery,Menu,我有下面的脚本 <script type="text/javascript"> $(document).ready(function () { var ChildMenusFound = $(".menu_Child").hover(function () { //Mouse Over alert('ok'); $(this).toggleClass("me

我有下面的脚本

<script type="text/javascript">
    $(document).ready(function () {
        var ChildMenusFound = $(".menu_Child").hover(function () {
            //Mouse Over
                            alert('ok');
            $(this).toggleClass("menu_hover");
        }, function () {
            //Mouse Out
                            alert('ok');
            $(this).toggleClass("menu_hover");
        });
    });
</Script>

$(文档).ready(函数(){
var ChildMenusFound=$(“.menu_Child”).hover(函数(){
//滑过
警报(“正常”);
$(this.toggleClass(“菜单悬停”);
},函数(){
//耗竭
警报(“正常”);
$(this.toggleClass(“菜单悬停”);
});
});
我输出的html如下所示:

<ul alt="" class="menu_Root">
<li class="menu_Child>"
<a href="/Admin" alt="">Admin</a>
<ul alt="" class="menu_Child">
<li class="menu_SubMenu>"
<a href="/Admin/Statistics" alt="">Statistics</a></li>
<li class="menu_SubMenu>"
<a href="/Admin/Database" alt="">Database</a></li>
</ul></li>

<li class="menu_Child>"
<a href="/MyAccount" alt="">My Account</a>
<ul alt="" class="menu_Child">
<li class="menu_SubMenu>"
<a href="/MyAccount/Profile" alt="">Profile</a></li>
</ul></li>

</ul>

    你的标记被破坏了。标签外有引号。看起来您在第一个外部
    的某个地方丢失了一个
    ,但很难说。

    您的HTML有点不对劲,您的类未关闭(或错误关闭)如下:

    <li class="menu_Child>"
                          ^ here
    
    $(function () {
      $(".menu_Child").hover(function () {
        $(this).toggleClass("menu_hover");
      });
    });
    

    通过向传递一个回调,它在两个输入/输出方向上都被调用,并且由于您正在切换,因此可以在此处保存代码。

    其他答案注意到您的HTML标记已损坏

    一个要考虑的事情是使用CSS而不是JavaScript来执行<代码>悬停< /代码>。除非它位于

    元素上,否则它在IE6中不起作用,但在大多数其他浏览器中都会起作用

    .menu_Child {
       background: yellow;
    }
    
    .menu_Child:hover {
       background: orange;
    }
    

    不确定要达到什么效果,但如果可以将悬停的元素更改为
    ,它也可以在IE6中工作。

    小心,您有两个字符:

    <li class="menu_Child>"
    

    该死的,谢谢。我花了很长时间盯着JQuery,看到了隧道视觉。var ChildMenusFound是做什么用的?仅用于调试-调用hover()后,我向ChildMenusFound.length发出警报,这样我就可以看到选择器找到了多少元素。实际上,我修复了ug并在没有注意的情况下取消了它(CTRL-Z)。感谢您提出了一个好主意,我通常会选择使用它——不过,在本例中,这是菜单系统的开始,除了切换类之外,我还将滑动/隐藏子菜单。由于如果JS不存在,我将返回到仅CSS的菜单,因此我将在那里使用悬停方法。JQuery菜单无论如何都需要JS,因此它很方便,没有实际成本。
    <li class="menu_Child>"
    
    <li class="menu_Child">