2017-05-30 6 views
2

1つのdivをクリックすると、色を変更する前後のdivが必要になります。コードは今完全に動作しますが、クリックされたdivの色のみが変更されます。私はjQueryを使うのが本当に新しいので、私が得ることができるすべての助けに感謝します。誰でも助けることができますか?以下のような1つのdivを3つの色でクリックしていますか?

function generateDivs(amount) { 
    container.empty(); 
    for (var i = 0; i < amount; i++) { 
    var div = $('<div>'); 
    div.addClass('box'); 
    container.append(div); 
    } 
} 

var container = $('#boxes'); 

$("#addSquareBtn").click(function() { 
    var nmbrSquare = $("#nmbrSquare").val(); 
    generateDivs(nmbrSquare) 
}); 

generateDivs(1); 

$(function() { 
    $('#boxes').click(function(event){ 
    $(event.target).css('background-color', 'plum'); 

    }); 
}); 
+3

も ​​'HTML'と' CSS'コードを入力してください。関連するコードが表示されないと、私たちは本当に役に立たない。 – Ionut

+2

'.next()'と '.prev()'を使用する – guradio

答えて

1

使用prev()next(): -

$(function() { 
    $('#boxes').click(function(event){ 
     $(event.target).css('background-color', 'plum'); 
     $(this).prev().css('background-color', 'plum'); 
     $(this).next().css('background-color', 'plum'); 
    }); 
}); 

あなたもEvent Delegationを使用することができます -

$(function() { 
    $(document).on('click','#boxes',function(){ 
    $(this).css('background-color', 'plum'); 
    $(this).prev().css('background-color', 'plum'); 
    $(this).next().css('background-color', 'plum'); 
    }); 
}); 
+0

ダブルクリック以外のすべてのdivの色を変更したい場合はどうすればいいですか? –

+0

'$( 'div')。not(this).css( 'background-color'、 'plum');' –

+0

Okey。だから、どこにコードを置くべきですか?それはどこにでも私のコードのいくつかを上書きするようです。 –

関連する問題