-4

我写了一个对象,它工作正常,除了我不满意,因为我认为它可以改进:

这里是:

var Modal = {

    init: function (contact1,contact2,aboutus1,aboutus2,terms1,terms2,privacy1,privacy2) {

        $(".modaltrigger").removeAttr("target");

        $(".modaltrigger").click(function () {

            if ($(this).is("#contact")) {

                $('#primary_url').attr('href', contact1);
                $('#secondary_url').attr('href', contact2);

            } else if ($(this).is("#aboutus")) {

                $('#primary_url').attr('href', aboutus1);
                $('#secondary_url').attr('href', aboutus2);

            } else if ($(this).is("#termsconditions")) {

                $('#primary_url').attr('href', terms1);
                $('#secondary_url').attr('href', terms2);

            } else if ($(this).is("#privacy")) {

                $('#primary_url').attr('href', privacy1);
                $('#secondary_url').attr('href', privacy2);
            }
        });
    }
};

我将上述方法称为:

Modal.init("test.com","test2.com","test3.com", "test4.com","test5.com", "test6.com","test7.com","test8.com");

以上工作正常,但是如果我要传递长字符串值怎么办?有什么办法,我可以将变量声明为参数,并在调用方法时动态分配变量?我怎么写那个代码..

我正在考虑将该方法称为:

Modal.init({
 var 1: "firstsrting",
 var 2: "secondsting",
 ...
 ...
});

请帮忙..

4

1 回答 1

0

只需使用对象作为一个参数。

var Modal = {

    init: function (params) {

        $(".modaltrigger").removeAttr("target");

        $(".modaltrigger").click(function () {

            if ($(this).is("#contact")) {

                $('#primary_url').attr('href', params.contact1);
                $('#secondary_url').attr('href', params.contact2);

            } else if ($(this).is("#aboutus")) {

                $('#primary_url').attr('href', params.aboutus1);
                $('#secondary_url').attr('href', params.aboutus2);

            } else if ($(this).is("#termsconditions")) {

                $('#primary_url').attr('href', params.terms1);
                $('#secondary_url').attr('href', params.terms2);

            } else if ($(this).is("#privacy")) {

                $('#primary_url').attr('href', params.privacy1);
                $('#secondary_url').attr('href', params.privacy2);
            }
        });
    }
};

并使用以下方法调用该函数(方法):

Modal.init({
    contact1: "http://test1.com",
    contact2: "http://test2.com",
    ...
    ...
});
于 2013-08-08T09:50:46.847 回答