Итак, что происходит, это то, что ваше событие бурлит в доме.
- Нажатие происходит
div2
div2
вызывается функция щелчка - , изменяющая цвет
div1
- , назначаемый ейсобытие click для
div1
div2
функция щелчка завершается (с неявным return true
) - событие всплывает до родительского в DOM
div1
получаетсобытие всплывающего клика div1
вызывается функция щелчка
, если вы не хотите, чтобы это произошло, вам нужно return false
в обработчике кликов для div2
РЕДАКТИРОВАТЬ: обратите внимание, что способ организации JS может быть не лучшим, потому что если я нажимаю div2
100 раз, это означает, что div1
теперь имеет 100 событий щелчка, которые будут выполняться.
Я предлагаю вам сделать это таким образом (имейте в виду, что я не знаю, каковы ваши требования):
$("#div2").click(function() {
$("#div1").css("background-color", "green");
return false;
});
$("#div1").click(function() {
$("#div1").css("background-color", "red");
});