0
function getData(url) {
    $.getJSON(url, function(result) {
        $('#formNav ul').append('<ul/>')
        $.each(result, function() {
            var list = $('#formNav li'),
            listItem = $('<li/>'),
            html = listItem.append($('<h5/>').text(this.name));
            $.each(this.items, function() {
                listItem.append($('<a />').attr('href', this.id).text(this.name))
            });
            list.append(html)
        });
    });
};




$(function(){


        var Menu = {

                $menu: $('.config-nav #formNav'),
                $trades : $(".config-nav select#tradesmanList"),
                $skills : $(".config-nav select#jobList"),

                init: function(){
                        var $menu = Menu.$menu;

                        // Set menu up
                        $menu.children("li").addClass('closed');
                        $menu.find(".js-reveal").hide();

                        Menu.$skills.attr("disabled", "disabled");
                        Menu.$trades.on("change", function($skills){
                        Menu.$skills.removeAttr("disabled");
                        });

                        // bind to click on the item...
                        $menu.on("click", "h4", this.toggle);


                },

                toggle: function() {
                        //  Toggle the hide show of the drill down menu
                        var $this = $(this),
                                $category = $this.parent();
                    console.log($this.parent().index());

                    var data = getData("test.json");

                    $category.addClass("loading").toggleClass("open");
                    $this.next(".reveal").delay(100).toggle(0, function(){
                        $category.Data;
                        $category.removeClass("loading");


                    });
                }

        };

       Menu.init();
});

我有一个返回 json 数据的函数,然后我在菜单函数中调用这个函数来显示数据但是每次我单击按钮时,数据只是不断生成,而不是我希望它显示数据,然后再次单击它隐藏数据?如果有人有任何建议,那就太好了。谢谢。

4

1 回答 1

0

每当您调用切换功能时,您似乎都在使用

var data = getData("test.json"); and then use it to populate the list..

为什么不将 getData 方法移到切换功能之外,而是将其移至 init 功能..看起来应该没问题..

于 2012-09-25T19:17:36.197 回答