在带有复选框的功能之间切换?
Posted
技术标签:
【中文标题】在带有复选框的功能之间切换?【英文标题】:switch between functions with checkboxes? 【发布时间】:2013-12-08 12:32:16 【问题描述】:我正在尝试简化我的游戏网站上的一些信息。
有两个不同的。用户类型、学生和其他。 许多地方和商店为学生提供折扣,因此我会通过一个更改某些脚本的复选框来实现这一点。 这是我的例子(尽可能简化):
<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,-";
//-------------------------------------------------
这不会杀死脚本,但也不会返回任何信息。
【问题讨论】:
【参考方案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;
【讨论】:
【参考方案2】:它不会返回任何内容,因为您只是在评估中定义函数。如果您之后添加第二对括号,它应该按照您的意图工作。
也就是说,这是一个非常糟糕的设计模式。首先,你真的不需要在这里做你正在做的事情。其次是使用完全独立的逻辑两次创建相同的命名函数——这几乎破坏了每一个好的编程原则。
更新:这里有一些东西可以为你指明正确的方向,
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
【讨论】:
很新鲜,你可能已经注意到了,呵呵,第二对括号不起作用,但更优雅的解决方案会更好,任何指针:)? 更流畅了,我花了一些时间来解决它,但现在它可以正常工作了,谢谢:)!以上是关于在带有复选框的功能之间切换?的主要内容,如果未能解决你的问题,请参考以下文章