2011-10-24 6 views
-1

私はこれを以前に尋ねましたが、それを説明する恐ろしい仕事をしました。あなたがクリックして、アニメーション/イベントの連鎖を開始する変数をランダムに作成するリンクを作成しようとしています。これはjQueryで可能ですか?ご協力いただきありがとうございます。jQuery:リンクをクリックしてランダム変数をtrueにする

編集:それは次のようになり記述する

ベストな方法:

var random1 === false 
var random2 === false 
var random3 === false 

$("a#random-btn").click(function(event){ 
"var random1, random2, or random3" === true; 
}); 

if (random1 === true){ 
$("a#1 span").stop().animate({opacity: 1,}, '100').animate({opacity: 0,}, '100') 
}); 

if (random2 === true){ 
$("a#2 span").stop().animate({opacity: 1,}, '100').animate({opacity: 0,}, '100') 
}); 

if (random3 === true){ 
$("a#3 span").stop().animate({opacity: 1,}, '100').animate({opacity: 0,}, '100') 
}); 
+0

変数は、ジャバスクリプトまたはスクリプト言語であります? – diEcho

+0

重複する質問は投稿しないでください。 http://stackoverflow.com/questions/7869813/making-1-of-6-variables-true-randomly-in-jquery – Sparky

+0

私はそれを理解していないので、あなたは再びbeautifullを記述することができます...あなたは探していますタイムアウトのために? – beardhatcode

答えて

1

注:私の答えは、あなたがランダムに真として変数を割り当てることはできません。変数をtrueに割り当てようとしていて、それを使って他のものをやっているようですね。なぜintを使用しないで、それを変更して、ロジックのswitch文を使うのですか?

var branch = -1; 
$("a#random-btn").click(function(event){ 
    branch = Math.ceil(Math.random() * 3); 

    switch(branch){ 
     case 1: 
      $("a#1 span").stop().animate({opacity: 1,}, '100').animate({opacity: 0,}, '100') 
      break; 
     case 2: 
      $("a#2 span").stop().animate({opacity: 1,}, '100').animate({opacity: 0,}, '100') 
      break; 
     case 3: 
      $("a#3 span").stop().animate({opacity: 1,}, '100').animate({opacity: 0,}, '100') 
      break; 
    } 
}); 

以上コンパクト

var branch = -1; 
$("a#random-btn").click(function(event){ 
    branch = Math.ceil(Math.random() * 3); 

    $("a#" + branch + " span").stop().animate({opacity: 1,}, '100').animate({opacity: 0,}, '100') 
}); 
+0

これは、あなたの特定の問題に対する私の解決策よりも、あなたのスクリプトを書くのにはるかに良い方法です。 –

+0

これは完全に機能します!私は大文字小文字のことは聞いたことがありません。みんなありがとう。 – Shopmelk

0

あなたがランダムに変数が真作るとはどういう意味ですか?アニメーション/イベントの連鎖を開始することによって、あなたは何を意味しますか?私は本当にその質問を理解していない。

しかし、クリックしている間に変数を変更したい場合は、これを実行してください。

jQuery('a').click(function(){ 
var myVariableFalse = true; 
}); 
+0

あなたがその質問を理解していなければ、それは本当に適切な答えにはなりません。 – Sparky

+0

=== ===偽 のvar random3偽 のvar random2 === 'のvar random1 と同様に偽 $( "#ランダムBTN")。、(関数(イベント){ するvar random1をクリックしてくださいrandom2、またはrandom3 === true; }); if(random1 === true){ $( "a#1 span")。stop()。animate({opacity:1、}、 '100')。アニメーション({opacity:0、}、 '100'); } – Shopmelk

0

これは本当に不快ですが、これは機能します。

<script> 
    var var1 = false; 
    var var2 = false; 
    var othervar = false; 
    var variables = ["var1","var2","othervar"]; 
</script> 
<a href="Javascript:eval(variables[Math.floor(Math.random()*variables.length)] + ' = true;');">link</a> 

私が提案したいのは、変更したいすべての変数をオブジェクトに入れ、それを文字列で簡単に参照できるようにすることです。

<script> 
    Object.size = function(obj) { 
     var size = 0, key; 
     for (key in obj) { 
      if (obj.hasOwnProperty(key)) size++; 
     } 
     return size; 
    }; 
    var variables = {"var1":false,"var2":false,"othervar":false}; 
</script> 
<a href="Javascript:variables[Math.floor(Math.random()*Object.size(variables))] = true;">link</a> 

Object.size taken from here.

関連する問題