我有这样的一组div:



单击红色div之一时,我需要将它们洗牌,但是单击的div应该始终与黄色div交换。

fiddle here

$('.box-red').click(function() {
    var container = $('#container');
    var nodes = container.children();
    for (var i = 1; i < nodes.length; i++) {
        container.append(nodes.eq(Math.floor(Math.random() * nodes.length)));
    }
});


谢谢

最佳答案

我对此FIDDLE采取了略有不同的方法


放入随机颜色
点击一个盒子
记住盒子的名称和类别
再次将所有盒子随机化
将“单击”框更改为其他类


我尝试使用rgb代码,但未获得一致的结果,因此在SO上有人更新了
一个古老的答案,说这种事情最好通过换班来解决-尤里卡!时刻。似乎可以工作。我想和rgb一起玩更多……不简单。

JS

$('.box').on('click', function(){
    getboxcolor = $(this).hasClass('blue');
    getboxnum = $(this).attr('id');
    newcolors();
    if( getboxcolor )
    {
     $( '#' + getboxnum ).removeClass( 'blue' );
     $( '#' + getboxnum ).addClass( 'green' );
     }
     else
    {
     $( '#' + getboxnum ).removeClass( 'green' );
     $( '#' + getboxnum ).addClass( 'blue' );
     }
     getboxcolor = '';
     getboxnum = 0;
});

09-27 22:25