减少javascript重复

时间:2011-10-17 08:31:39

标签: javascript jquery

我有一个标签式菜单系统,并在选项卡上单击将特定页面加载到选项卡相关的div。

目前我有一系列以下功能。每个选项卡的一个集合,这使得一些非常丑陋的代码。我能做些什么来简化和减少重复吗?

每个“TAB”实例都是已单击的选项卡的名称。 {%url ...%}部分是Django动态网址。

我在想,如果将标签名称和网址放入各种类型的数组中,它至少可以使所有功能集中创建。但是,还有进一步简化它吗?

感谢您的帮助。

    function loadTABlog() {
        $("#TABlog").load("{% url list_TABlog person.id %}", function(response, status, xhr) {
            if (status == "error") {
                var msg = "Sorry but there was an error: ";
                $("#TABlog").html(msg + xhr.status + " " + xhr.statusText);
            }
        });
        return false;
    };
    $("#loadTABlog").click(function() {
        $("#TABlog").empty().html('<img src="{{ STATIC_URL }}loading.gif" class="ajaxloader" />');
        loadTABlog();
    });

1 个答案:

答案 0 :(得分:0)

我试着让它成为数据驱动的。

的内容
var tabs = [
    {activator: "#loadTabLog",
     element: "#tabLog",
     url: "{% url list_tab_log 9000 %}"},
    ...
];

迭代它,分配处理程序:

for (var i = 0; i < tabs.length; ++i) {
    var t = tabs[i];
    $(t.activator).click(function() {
        $(t.element).empty().html("<img>");
        ...
        $(t.element).load(t.url.replace("9000", actual_user_id), ...);
    });
}