jQuery:单击链接并使随机变量为true

时间:2011-10-24 04:44:16

标签: jquery

我之前问过这个,但做了一个可怕的工作来描述它。我希望创建一个单击的链接,它会随机变量为true,从而启动一系列动画/事件。这可能与jQuery有关吗?谢谢你的帮助。

编辑:

描述它的最佳方式是:

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')
});

3 个答案:

答案 0 :(得分:1)

注意:我的回答不允许您将变量随机分配为true。我猜你试图将变量赋值为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')
}); 

答案 1 :(得分:0)

将变量随机变为真是什么意思?还有什么是启动一系列动画/事件的意思?我真的不明白这个问题。

但如果您想在点击期间进行变量修改或其他操作,请执行此操作。

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

答案 2 :(得分: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.