2017-05-30 70 views
2

當我點擊一個div我希望前後的div也改變顏色。該代碼現在完美工作,但只會改變點擊div的顏色。我真的很習慣使用jQuery,所以我很感激任何幫助。任何人都可以幫忙嗎?點擊一個div - 改變三個顏色?

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。那麼我應該把代碼放在哪裏?無論我把它放在哪裏,它似乎都會覆蓋我的一些代碼。 –