-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

オブジェクトを 1 つのパラメーターとして使用するだけです。

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 に答える