Jquery新手 - 菜单问题

时间:2018-05-01 18:47:33

标签: jquery

我正在使用smarty在cms中动态创建菜单。我有它为我的菜单和HTML生成jquery。我正在使用类关闭菜单项和ID来打开它们。 (见下面的逻辑)。除非有人点击两次相同的菜单项,否则它会很好 - 在这种情况下它关闭项目然后重新打开它。我也试过更改项目的ID,但这并没有解决问题。

示例代码是

$(document).ready(function() {
    $('#about-us').click(function() {
        $('.second-level-menu').slideUp('fast', function() {});
        $('#about-us-menu').slideDown('fast', function() {});
        $('#about-us').attr('id', 'about-us-close');
    });

    $('#about-us-close').click(function() {
        $('#about-us-menu').slideUp('fast', function() {});
        $('#about-us-close').attr('id', 'about-us');
    });
});

您可以通过查看来查看代码和问题 http://pfp.pearsonwebsnorthampton.co.uk - 点击我们,然后再次点击它。

1 个答案:

答案 0 :(得分:0)

在我看来,你在这里完成了绑定: $('#about-us').click(function() {

但是当文档准备就绪时#about-us-ready不存在,所以第二组绑定: $('#about-us-close').click(function() { 不能正确发生。

您可以使用事件委派来解决此问题或将事件绑定设置为一个函数,只需让函数检查以查看您的DOM对象当前处于什么状态(打开或关闭)