我正在尝试简化我的游戏网站上的一些信息。
有两个不同之处。用户类型,学生和其他人。 许多地方和商店为学生提供折扣,因此我可以使用一个更改某些脚本的复选框来访问它。 这是我的例子(尽可能地简化):
<head>
<script TYPE="text/javascript" SRC="script/script_uteplasser.js"></script>
</head>
<body>
<form action="">
<input type="checkbox" id="checkbox_student" onclick="student();"><span>I'm A student!</span></input></form>
(...)
</body>
javascript(script_uteplasser):
//--------------------SAMFUNDET---------------------
samfundet = "...blablablabla..." + cc_samfundet() + "...blablablabla...";
//----INNGANGSAV. SAMFUNDET----
var checkbox1 = document.getElementById("checkbox_student");
function student(){
if (checkbox1.checked){
function cc_samfundet(){var d=new Date(); var theDay=d.getDay(); switch (theDay) { case 1: return "Free"; break; case 2: return "Free"; break; case 3: return "Free"; break; case 4: return "Free"; break; case 5: return "Free"; break; case 6: return "Free"; break; case 0: return "Free";}}
}
else{
function cc_samfundet(){var d=new Date(); var theDay=d.getDay(); switch (theDay) { case 1: return "100,-"; break; case 2: return "100,-"; break; case 3: return "100,-"; break; case 4: return "100,-"; break; case 5: return "100,-"; break; case 6: return "100,-"; break; case 0: return "100,-";}}
}
}
//-------------------------------------------------
这不会杀死脚本,但也不会返回任何信息。
答案 0 :(得分:1)
为什么要重新定义功能?
如果选中复选框,您可以签入您的功能。如果您想真正重新定义函数,请使用以下代码:
//declare your function :
function cc_samfundet () {
//...
}
//or :
var cc_samfundet2 = function () { /* ... */ };
//redefine your function :
cc_samfundet = function () {
//...
}
//or with an existing function :
cc_samfundet = cc_samfundet2;
答案 1 :(得分:0)
它不会返回任何内容,因为您只是在评估中定义了您的功能。如果之后添加第二对括号,它应该按照您的意图工作。
那就是说,这是一个非常糟糕的设计模式。首先,你真的不需要在这里做你正在做的事情。其次是使用完全独立的逻辑两次创建相同的命名函数 - 这几乎制动了每个良好的编程原理。
更新:这是指向正确的方向,
var checkbox1 = document.getElementById("checkbox_student");
// Assuming this function should do something else too?
function student() {
cc_samfundet(checkbox1.checked);
}
var cc_samfundet = function (isStudent) {
var d = new Date();
var theDay = d.getDay();
switch (theDay) {
case 1:
return isStudent ? "Free" : "100,-";
// and so on
}
}