0

我正在尝试随机选择模式对话框并在特定数量的点击后结束。

我是 javascript 的新手,这就是我到目前为止所得到的。

<script type="text/javascript">
var randomNumber = Math.round(Math.random()*4+1);
function myclick(){

if (randomNumber == 1) {
    $("#q1").click();
}

if (randomNumber == 2) {
    $("#q2").click();
}

if (randomNumber == 3) {
    $("#q3").click();
}

if (randomNumber == 4) {
    $("#q4").click();
}
}
</script>

<body>
<a id="q1" href="#dialog1" name="modal" image=></a>
<a id="q2" href="#dialog2" name="modal" image=></a>
<a id="q3" href="#dialog3" name="modal" image=></a>
<a id="q4" href="#dialog4" name="modal" image=></a>

更新!!!!!!!!!!!!!!!!!!!!!!!!感谢您的快速回复。

很抱歉没有包含所有脚本。

<script type="text/javascript" src="jquery.1.8.2.js"></script>
<script>

var randomNumber = Math.floor(Math.random()*4+1);


function myclick(){
if (randomNumber == 1) {
    $("#q1").click()
}
else if (randomNumber == 2) {
    $("#q2").click()
}
else if (randomNumber == 3) {
    $("#q3").click()
}
else if (randomNumber == 4) {
    $("#q4").click()
}
}
</script>

<BODY>

<h3>Web Design Quiz</h3>
<form name="quiz">
<a id="q1" href="#dialog1" name="modal" image=></a>
<a id="q2" href="#dialog2" name="modal" image=></a>
<a id="q3" href="#dialog3" name="modal" image=></a>
<a id="q4" href="#dialog4" name="modal" image=></a>
<input type="button" src="img/info.png" onclick="myclick()"></input>

我删除了关闭";" 在“Round”之后添加“else if”。我仍然一次只能打开 1 个对话框。我想通过单击按钮打开所有对话框并以最后一个结束。每次单击按钮时如何刷新我的随机数?

4

2 回答 2

1

尝试使用以下代码生成随机值:

Math.floor(Math.random() * 4) + 1

你忘了关闭圆形块。

于 2012-10-10T09:34:30.280 回答
1

好的,首先我希望您知道您正在使用 JQuery 并因此包含正确的脚本。就像是:

<script src="/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>

接下来是问题列表:

  • 你不关闭随机Round功能
  • 您的随机数被设置为全局变量,并且只会设置一次(并且不会更改),但也许这是您的愿望。如果每次都需要它不同,则应考虑将其移动到myclick函数内部
  • 您似乎没有在任何地方调用 myclick 函数,但也许这是内联完成的?
  • 调用 JQueryclick函数对于模拟点击并不理想。最好创建一个单独的函数来获取应该处理的 div 的选择器 id

提示:您可以通过自定义构建 JQuery 选择器来用更少的代码来做这种事情,这将节省您所有的 if 语句。就像是:

$("#q" + randomNumber).click();

此外,像这样使用多个 if 语句也应该使用该else if语句,因为在这种情况下,只有一个 if 语句可以成功

于 2012-10-10T09:40:16.537 回答