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>

私は近くを削除しました";" 「ラウンド」の後に「elseif」を追加します。私はまだ一度に1つのダイアログしか開くことができません。ボタンをクリックしてすべてのダイアログを開き、最後のダイアログで終了したいと思います。ボタンをクリックするたびに乱数を更新する方法は?

4

2 に答える 2

1

OK、まず、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ステートメントは1つだけ成功する可能性があるためです。

于 2012-10-10T09:40:16.537 に答える
1

このコードでランダムな値を生成してみてください:

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

丸いブロックを閉じるのを忘れました。

于 2012-10-10T09:34:30.280 に答える