包含PHP页面中的jQuery代码

时间:2012-08-05 11:34:05

标签: php javascript jquery include slidetoggle

我目前遇到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>

哪个应该得到.more to slideToggle:

<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。

时没有任何反应

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

我做错了什么?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您应该替换:

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

通过

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

(接下来在同一级别调用以下标记)

修改:

我有点失明,在用您的子菜单打开.more标记之前,我没有看到您使用类<ul>关闭了代码。但是,这显示了另一个问题:您将<li>元素放在同一标记内的<ul>元素的同一级别中。

答案 1 :(得分:0)

您使用的是哪个版本的jQuery?我在jQuery网站上找到了这个:

  

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()来   附加事件处理程序。旧版jQuery的用户应该使用   .delegate()优先于.live()。