-1

私は2つの異なるクラスを持つ2つのdivを持っています:

  1. divクラス名は:good

  2. divクラス名は:bad

このdivのjavascript(ユーザースクリプト)をランダムにクリックしたいと思います。私はjavascriptでコーディングしたことはなく、インターネットでこのコードを見つけました。

私はこのコードを持っています:

function addJQuery(callback) {
  var script = document.createElement("script");
  script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
  script.addEventListener('load', function() {
    var script = document.createElement("script");
    script.textContent = "(" + callback.toString() + ")();";
    document.body.appendChild(script);
  }, false);
  document.body.appendChild(script);
}

function main() {
setInterval(function(){
$('div.good').click();
$('div.bad').click();
}, 5000);

}
addJQuery(main);
4

2 に答える 2

0

あなたがやろうとしているのは、これら2つのdivのいずれかでアクションを実行することのようです。クリックを偽造することは実際には意味がありません。コードを実行するだけで、別のはるかに便利な方法で簡単に実行できるからです。divがクリックされたときに何をしたいですか?

于 2012-10-23T00:08:25.157 に答える
0

まず、2つの質問:

  1. 何を達成しようとしていますか?あなたが提示するタスクはかなり奇妙で、他の方法で実行できないアプリケーションは考えられません。
  2. jQueryを非同期的に追加する理由はありますか?

それでも、次のコードは、ページの読み込みから30秒後に、ランダムに選択された2つのdivのいずれかにクリックイベントをディスパッチします。

function main() {
    setTimeout(function() {
        if (Math.random() < 0.5)
            $('div.good').click();
        else
            $('div.bad').click();
    }, 30*1000);
}

より一般的な解決策は、N個のアイテムのセットからランダムに選択するランダム選択関数を作成することです。

Math.randomChoice = function(collection) {
    return collection[Math.floor(Math.random() * collection.length)];
};

function main() {
    setTimeout(function() {
        var elem = Math.randomChoice(['good', 'bad']);
        $('div.' + elem).click();
    }, 30*1000);
}
于 2012-10-23T00:19:24.123 に答える