0

我真的希望有人能帮忙!我在 slideToggle 上找到了很多帖子,以及如何一次只显示一个 div,但我不知道如何在我购买的 wordpress 主题中将其实现到这个菜单中。这是主题:http ://themes.themegoods.com/rhea_wp (我已经破解了菜单,所以它不会做那种烦人的淡入淡出(和音乐)。但是看看当你点击时所有菜单是如何保持打开状态的他们?下面是菜单的代码。是否可以编辑此代码以使其一次只显示一个子菜单?我希望其他人在您单击另一个主链接时关闭。也许我不需要使用slideToggle?也许是slideUp和slideDown?或者其他什么?我是新手,真的需要尽快为客户解决这个问题!感谢任何帮助!

$j.fn.setNav = function(){
$j('#main_menu li ul').css({display: 'none'});

$j( 'ul#main_menu > li:has( ul li.current-menu-item )' ).each(function()
{   
    $j(this).find('ul.sub-menu').css({overflow:'visible', height:'auto', display:  'block'});
});

$j('ul#main_menu > li:has( ul.sub-menu )').click(function()
{

    var $jsublist = jQuery(this).find('ul:first');
    $jsublist.slideToggle('fast');

    return false;
});

$j('ul#main_menu > li > ul.sub-menu li ').click(function()
{
    var subURL = $j(this).find('a:first').attr('href');
    location.href=subURL;
    return true;
}); }
4

3 回答 3

0

试试 .live 或 .on

http://api.jquery.com/live/

http://api.jquery.com/on/

于 2012-06-04T18:19:03.297 回答
0

我认为你不应该在不了解底层代码的情况下为客户破解主题,它只会在未来出现问题或客户想要新东西时回来困扰你。

这就是改变这一行的快速破解:

$jsublist.slideToggle('fast');

为此,可能有效:

$('ul.sub-menu').slideDown('fast');
$jsublist.slideToggle('fast');
于 2012-06-05T15:20:59.543 回答
0

解决了。问题只是主题使用的是旧版本的 jQuery - 确切地说是 1.3.2。一旦我调用了最新版本,菜单就可以使用这个修改:

$j('ul#main_menu > li:has( ul.sub-menu )').click(function () {
var $jsublist = jQuery(this).find('ul:first');
    $('.visible').slideUp('fast')
    $jsublist.slideToggle('fast').addClass('visible');
return false;
于 2012-06-06T13:45:38.280 回答