2013-05-31 48 views
0

我正在寻找可能性,以读者的练习形式为基础的一些交互性创建日语学习网站。假设我有一个表像这样:用几乎相同的参数调用JS函数的多个按钮

-------------------------------------------- 
| characters | definition | roman letters | 
-------------------------------------------- 
| こんにちは | hello  | <input type="text"> | 
--------------------------------------------- 
| ...  |   | <input type="text"> | 
-------------------------------------------- 
|   <grade button> <show answers button> <clear fields button> 
------------------------------------------ 

所以用户读取字符,学会的定义,并与罗马字母输入字段写入它。当他或她完成时,他可以通过按等级按钮来检查他的答案,这会将输入文本标记为红色或绿色。或者他们可以放弃并用第二个按钮显示答案,然后用第三个按钮清除答案。

现在这样做的方式是我有一个表的ID和3个Javascript函数来完成上述工作。第一个采用ID和一组正确答案,然后根据JQuery的正确答案设置所有输入字段的颜色。例如,如果该表的ID是#ex1,那么我使用选择器#ex1 :text。 第二个按钮还需要一个ID和一组正确答案。第三个按钮只需要表格的ID。

所以在HTML我的表我想有这样的事情:

<button onclick='grade("ex1", ["some", "array", "with", "answers"])'

<button onclick='showAnswers("ex1", ["some", "array", "with", "answers"])'

<button onclick='clear("ex1")'

这工作,但有点难看,因为我repeadetly使用相同参数。那么任何人都可以提出更好的方法?

编辑:我需要每页有多个。

回答

1

您可以将答案放在全局变量中,然后将其作为参数传递。 某处在$(文件)。就绪()块 你只需要输入

corectAnswers = ["some", "array", "with", "answers"]; 

showAnswers("ex1", correctAnswers); 

你可能会被使用正确答案为内部的全局变量调用的函数函数并不会将其作为参数传递,但如果避免这种情况会更好。

如果你不使用jQuery你可以把页面上的第一块中的变量赋值...

+0

是啊...你可以做同样的“EX1” ......当然...... –

相关问题