jquery函数只能工作一次

时间:2014-05-07 21:20:48

标签: jquery function

我没有最聪明的想法为什么这个功能只能运作一次..任何想法?

var ColorsTable = ['red', 'green', 'blue', 'gold', 'white', 'black'];
var Rand = ColorsTable[Math.floor(Math.random() * ColorsTable.length)];
var Rand2 = ColorsTable[Math.floor(Math.random() * ColorsTable.length)];

jQuery( document ).ready(function( $ ) {
    $('.losuj').click(function () {
        $("#rama").css("background", Rand);
        $("#rama2").css("background", Rand2);
                var input = $('#wpis');
                input.val('')
                input.val(input.val() + Rand);
                var input2 = $('#wpis2');
                input2.val('')
                input2.val(input2.val() + Rand2);
    }); });

http://jsfiddle.net/U6MFp/5/

2 个答案:

答案 0 :(得分:3)

随机颜色仅在页面加载时计算一次,在点击处理程序内移动

var ColorsTable = ['red', 'green', 'blue', 'gold', 'white', 'black'];


jQuery(document).ready(function ($) {
    $('.losuj').click(function () {
        var Rand = ColorsTable[Math.floor(Math.random() * ColorsTable.length)];
        var Rand2 = ColorsTable[Math.floor(Math.random() * ColorsTable.length)];
        $("#rama").css("background", Rand);
        $("#rama2").css("background", Rand2);
        var input = $('#wpis');
        input.val('')
        input.val(input.val() + Rand);
        var input2 = $('#wpis2');
        input2.val('')
        input2.val(input2.val() + Rand2);
    });
});

FIDDLE

答案 1 :(得分:1)

我假设你每次都期待不同的颜色?如果是这种情况,您只需在文档加载时生成一次随机颜色,并且每次都使用相同的值。

尝试移动函数定义中的顶部代码,如下所示:

var colorsTable = ['red', 'green', 'blue', 'gold', 'white', 'black'];

$(document).ready(function() {
    $('.losuj').click(function () {
       var rand = colorsTable[Math.floor(Math.random() * colorsTable.length)];
       var rand2 = colorsTable[Math.floor(Math.random() * colorsTable.length)];

       $("#rama").css("background", rand);
       $("#rama2").css("background", rand2);
       $('#wpis').val(input.val() + rand);
       $('#wpis2').val(input2.val() + rand2);
    }); 
});