包含的PHP页面中的jQuery代码


jQuery Code in included PHP pages

我目前遇到了PHP和jQuery的问题。

我已经建立了一个这样的网站:

header.php-这是加载所有css和js文件的地方。index.php-主页。sidemenu.php-这是侧菜单,包含在index.php 中

在sidemenu.php中,我有一个JS代码:

    <script type="text/javascript">
    jQuery(document).ready(function($) {
        $(".more").live('click', function(){
        $(this).next(".submenu").slideToggle(500); });
    });
    </script>

这应该会让更多的人滑动切换:

<div class="twocol" id="side-menu">
    <ul class="menu">
        <li>Dashboard</li>     
        <li class="more"><a href="#">Security Settings</a> <img src="images/dropdown-menu.png" align="right"></li>
            <ul class="submenu">
                <li>Blacklistings</li>
                <li>New Membership Package</li>  
            </ul>                        
        <li class="more"><a href="memberships.php">Memberships</a> <img src="images/dropdown-menu.png" align="right"></li>
            <ul class="submenu">
                <li>New Membership</li>
                <li>New Membership Package</li>  
            </ul>         
        <li>Forums</li>  
        <li>Help Desk</li>
        <li class="help">Documentation</li>    
    </ul>   
</div><!-- END 2col --> 

然而,当我点击.more时,什么都没有发生。

奇怪的是,如果我只是用上面三个页面的源代码制作一个页面,它就可以了。

我做错了什么?

提前谢谢。

您应该替换:

$(this).next(".submenu").slideToggle(500);

通过

$(this).children(".submenu").slideToggle(500);

(Next在同一级别调用以下标签)

编辑:

我有点盲目,在用子菜单打开<ul>标记之前,我没有看到你用类.more关闭了标记。然而,这向我展示了另一个问题:您将<li>元素与<ul>元素放在同一级别的同一标记中。

Wich版本的jQuery你在用吗?我在jQuery网站上找到了这个:

从jQuery 1.7开始,.live()方法已被弃用。使用.on()附加事件处理程序。旧版本jQuery的用户应该使用.delete()优先于.live().