我目前遇到了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().