$('.pallete').hide();
$(document).delegate('.pick', 'click', function() {
var pos = $(this).offset();
var x = pos.left - $(window).scrollLeft() + $(this).width();
var y = pos.top - $(window).scrollTop() + $(this).height();
$('.pallete').css({
top: y + "px",
left: x + "px",
}).show();
});
$(document).delegate('.col', 'click', function() {
var pos = $(this).css('background-color');
$('.pick').css('background-color', pos);
$(this).parents('div').fadeOut();
});
Вот скрипка, http://jsfiddle.net/zPNk3/5/. Проблема заключается в том, что когда я нажимаю первый раз на элементе .pick
, элемент '.palette' отображается правильно. Но когда я нажимаю в следующий раз то же самое не работает.Переключение абсолютного DIV не работает после первого раза
Спасибо большое за ответ. Я был в небольшом замешательстве, что самые близкие могут также рассматривать элементы родного брата, я не использовал его. Но, увидев этот ответ, мои сомнения очищены. Еще раз спасибо. – Exception
Вы можете сделать $ (this) .parents ('. Pallete'). FadeOut(); который будет работать только с родительскими элементами с классом pallete. Или даже: $ (this) .parents ('. Pallete'). First(). FadeOut(); – Paulina
@paulina: За исключением '.closest()' является наиболее правильным, поэтому я использую это. Это точно так же, как '$ (this) .parents ('. Pallete'). First()', кстати. – Ryan