如何在页面加载中保持子菜单打开?

时间:2014-11-14 06:55:33

标签: javascript jquery css asp.net web-applications

我想在页面加载时保持子菜单打开。我怎样才能成功呢?

这是jquery:

( function( $ ) {
$( document ).ready(function() {
$('#cssmenu li.has-sub>a').on('click', function(){
        $(this).removeAttr('href');
        var element = $(this).parent('li');
        if (element.hasClass('open')) {
            element.removeClass('open');
            element.find('li').removeClass('open');
            element.find('ul').slideUp();
        }
        else {
            element.addClass('open');
            element.children('ul').slideDown();
            element.siblings('li').children('ul').slideUp();
            element.siblings('li').removeClass('open');
            element.siblings('li').find('li').removeClass('open');
            element.siblings('li').find('ul').slideUp();
        }
    });
});
} )( jQuery );

任何帮助将不胜感激!!

1 个答案:

答案 0 :(得分:1)

如果点击第一个a元素“打开”“子菜单”,您可以在DOM就绪事件上触发click事件:

$('#cssmenu li.has-sub>a').on('click', function() {
    // ...
}).first().click();

如果您想选择其他a元素,可以使用.eq()方法:

$('#cssmenu li.has-sub>a').on('click', function() {
    // ...
}).eq(2).click(); // trigger the click event on the third `a` element in the collection

不使用.first().eq()方法,将为集合中的所有元素触发事件。您还可以使用.trigger('click').triggerHandler('click')方法。