【发布时间】:2013-08-09 23:15:37
【问题描述】:
我写了一个对象,它工作正常,除了我不满意,因为我认为它可以改进:
这里是:
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",
...
...
});
请帮忙..
【问题讨论】:
-
您最后一个问题的公认答案难道没有准确回答这个问题吗?
-
它没有按预期工作,因为在方法中声明的所有内容都覆盖了我在调用方法时设置的值:(
-
@Wasiim:再看看that answer。它确切地向您展示了如何做到这一点。
-
Modal.init({ contact1:"contact str", contact2:"contact str", ..... ..... lastitem : "last str" });
-
方法调用时没有设置上述变量
标签: javascript jquery oop