2014-05-07 106 views
0

我没有最明智的想法,为什么这个函数只能工作一次..任何想法?jquery函数只能工作一次

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

因为你在Rand'的'值传递,而不是每次运行时生成一个新的随机值。 –

回答

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

里面我假设你正在期待一个不同每次染色?如果是这种情况,那么在文档加载时每次只生成一次随机颜色并使用相同的值。

尝试移动顶部代码函数定义里是这样的:

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