Я делаю небольшой сайт, где, если вы нажмете на фон, вы получите палитру цветов, позволяющую изменить цвет фона.
Проблема в том, что эта палитра цветов теперь отображается независимо от того, где я нажимаю, из-за всплытия событий. Я сомневаюсь, что решение здесь заключается в добавлении «return false» к каждому элементу HTML на всей странице. Что я могу с этим поделать?
Javascript:
var colorPicker = $.farbtastic('#colorpicker');
var bodyBackgroundColor = $('body').css('background-color').rgbToHex();
$('body').click(function() {
//Set the link to the field displaying the chosen color.
colorPicker.linkTo('#newcolor');
//Set the color on the colorpicker wheel.
colorPicker.setColor(bodyBackgroundColor);
//Set oldcolor field values
$('#oldcolor').val(bodyBackgroundColor);
$('#oldcolor').css('background-color', bodyBackgroundColor);
//Set newcolor field values
$('#newcolor').val(bodyBackgroundColor);
new Boxy($('#form_changecolor'));
return false;
});
Вот обзор того, как выглядит HTML:
<html>
<body>
<div id="wrapper">
<div id="header"></div>
<div id="content"></div>
<div id="footer"></div>
</div>
</body>
<html>
Макет страницы таков, что фон верхнего и нижнего колонтитула и один и тот же цвет и содержимое отличаются.
Щелчок по верхнему или нижнему колонтитулу и изменение этого цвета изменяет оба, потому что этот цвет на самом деле является фоном тела. Контент меняет только контент.
Проблема с решением делегата заключается в том, что теперь оно просто больше не работает. И метод остановки распространения в основном делает то же самое.
Мне нужно включить распространение, но не все.
<body>
. - person Pointy   schedule 07.04.2011