ul li附加每次单击以添加openToggle类

时间:2013-08-25 09:40:22

标签: jquery html css

我遇到了一些问题,试图找到一种方法来附加动态菜单切换,当点击ul li列表中的帖子中的特定内容时。但是,由于某种原因,它不能很好地工作。

我在想Every();和最近的(); + Find();在jQuery中。

以下是我想要实现的目标:

enter image description here

欢迎任何帮助!谢谢,希望解决方案可以是动态的。

代码:

  var activeClass = 'openToggler', showingDropdown, showingMenu, showingParent;
        /* hides the current menu */
        var hideMenu = function () {
            if (showingDropdown) {
                showingDropdown.removeClass(activeClass);
                showingMenu.hide();
            }
        };

        /* recurse through dropdown menus */
        $('.micro-post').each(function () {
            /* track elements: menu, parent */
            var dropdown = $(this);
            //var opts = dropdown.closest("opts");

            //console.log(opts);

            var menu = dropdown.next('.dropdown-menu'), parent = dropdown.parent();
            /* function that shows THIS menu */
            var showMenu = function () {
                hideMenu();
                showingDropdown = $(this).closest('.micro-post').addClass(activeClass);
                showingMenu = menu.show();
                showingParent = parent;
            };
            /* function to show menu when clicked */
            dropdown.bind('click', function (e) {
                if (e) e.stopPropagation();
                if (e) e.preventDefault();
                showMenu();
            });
            /* function to show menu when someone tabs to the box */
            dropdown.bind('focus', function () {
                showMenu();
            });
        });

        /* hide when clicked outside */
        $(document.body, ".micro-post").bind('click', function (e) {
            if (showingParent) {
                var parentElement = showingParent[0];
                if (!$.contains(parentElement, e.target) || !parentElement == e.target) {
                    hideMenu();
                }
            }
        });

1 个答案:

答案 0 :(得分:0)

好吧,感谢您的帮助,但在重新编写所有内容之后,我想出了解决问题的方法,而我自己的解决方案现在完美无缺。非常感谢您帮助我,但我完成了。如果我遇到任何问题,我会在这里发布,StackOverFlow Rocks! :)