分配变量OnClick随机动作

时间:2011-11-23 08:05:14

标签: javascript

var Rand1 = Math.floor(Math.random()*3);
var Rand2 = Rand1;

while ( Rand2 == Rand1 ){
    var Rand2 = Math.floor(Math.random()*3);
}
var step1 = Rand1;
var step2 = Rand2;

function moveto(step1, step2) {
    var w = $(document).width();
    $('#full').animate({
        left: -(step1*w)
    },  {
    duration: 3000,
    });
}

//what element is this supposed to be?
class="img bg-img1" OnClick="moveto('1');">

我的问题是:我需要将Rand1给出的随机数分配到OnClick =“moveto('Rand1')中;我该怎么做?

2 个答案:

答案 0 :(得分:1)

首先,我假设Rand1在全局上下文中声明,因为它看起来像是来自你问题中的代码。如果是这种情况,为什么需要将它传递给事件处理程序?无论如何,它都可以从事件处理函数访问:

var Rand1 = Math.floor(Math.random()*3);
function moveto() {
    //Rand1 is accessible here
}

其次,看来你在moveto函数中使用了jQuery,那么为什么不使用jQuery来附加事件监听器,而不是内联:

$(".bg-img1").click(moveto);

答案 1 :(得分:1)

尝试此操作并从内联按钮/元素中移除onclick:http://jsfiddle.net/GApnw/

function randomNumbers() {
    var Rand1 = Math.floor(Math.random() * 3);
    var Rand2 = Rand1;
    while (Rand2 == Rand1) {
        var Rand2 = Math.floor(Math.random() * 3);
    }
    return [Rand1, Rand2];
}

function moveto(step1, step2) {
    var w = $(document).width();
    $('#full').animate({
        left: -(step1 * w)
    }, {
        duration: 3000,
    });
    alert(step1 + " " + step2);
}

$(function(){
    $(".img").click(function(){
        var randomNum = randomNumbers();
        moveto(randomNum[0], randomNum[1]);
    });
});

如果您没有在其他地方提供数字,请拨打电话以获取您移动中的RandomNumbers。