【问题标题】:jQuery: Click link and make a random variable truejQuery:单击链接并使随机变量为真
【发布时间】:2011-10-24 04:44:16
【问题描述】:

我之前问过这个问题,但描述它做得很糟糕。我希望创建一个您单击的链接,它会随机生成一个变量,从而启动一系列动画/事件。这可能与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')
});

【问题讨论】:

  • 变量是javascript还是脚本语言??
  • 请不要发布重复的问题。 stackoverflow.com/questions/7869813/…
  • 你能不能再把它描述一下,因为我不明白......你在寻找超时吗?
  • 您能否用“一般”术语描述您想要实现的目标,因为这样可以让人们理解问题,而不是您所询问的特定解决方案
  • @Ankur 出于某种原因,这很难解释。假设当您单击“随机”按钮时,它会执行 var 1、2 或 3。Var 有自己的 if 语句来表示我想要实现的正确动画。

标签: jquery


【解决方案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')
}); 

【讨论】:

  • 这是一种编写脚本的好方法,比我针对您的特定问题的解决方案要好得多。
  • 这很完美!我从未听说过案例(这里有点 JS 菜鸟)。谢谢大家。
【解决方案2】:

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

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

jQuery('a').click(function(){
var myVariableFalse = 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
【解决方案3】:

这真的很笨拙,但这很管用。

<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.

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 2011-12-13
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2018-07-19
    相关资源
    最近更新 更多