Обнулить значение переменной
Доброго времени суток, уважаемые жители форума. Столкнулся с такой проблемой, есть функция, что-то вроде лайтбокса. Есть переменная src которая подставляет нужный адрес при клике на миниатюре. Суть проблемы в том что я не могу её обнулить, при клике на любое изображение отображается картинка на которую нажали первой.
Привожу код функции $('img.preview_foto').click(function(){ src = null; src = $(this).attr('src'); if(!$("div").is(".pop_up_preview_foto")){ $('body').append('<div class="pop_up_preview_foto">'+ '<div class="pop_up_body">'+ '<img src="catalog/view/theme/default/img/close_wight.png" alt="" title="Закрыть" class="close_pop_up"/>'+ '<div class="pop_up_slider">'+ '<ul class="pop_up_bxslider">'+ '</ul>'+ '</div>'+ '<input type="text" placeholder="Станислав" class="pop_up_body_input">'+ '<input type="text" placeholder="+38 (050) ХХ ХХ ХХХ" class="tel pop_up_body_input">'+ '<div class="buy_btn">Заказать в 1 клик</div>'+ '</div>'+ '</div>'); $('.pop_up_bxslider').append('<li><img src="'+src+'" alt=""/></li>'); $('.pop_up_bxslider').bxSlider({ auto: true, pager: false }); $(".tel").mask("+38 (999) 999 99 99"); } $('body').addClass('ov_hidden'); $('div.pop_up_preview_foto').fadeOut(0); $('div.pop_up_preview_foto').fadeIn(300); }); PS. Не важно в каком месте функции обнулять, не помогает. PPS. Если обнулить сразу после вызова - работает.. |
src = null; - в этом вообще нет смысла, ибо
src = $(this).attr('src'); -сразу же она примет значение а источником этого значения будет изображение по которому щелкнули. |
Цитата:
|
И на чем это утверждение строится?
|
Цитата:
Путём alert(src);было проверено что переменная таки принимает новое значение, но тогда я совершенно не понимаю почему не меняется изображение.. |
А что должно измениться? Вставляемое изображение <img src="'+src+'" alt=""/> получает путь изображения preview_foto, а значит будет показано оно.
|
|
$('body').append('<div class="pop_up_preview_foto">' .... а потом передали в него галерею изображений, на примере как выше с авто.
А если показать одно изображение по щелчку на нем, нужно открыть эту панель, загрузить а него фото, а при закрытии уничтожить ее, а не скрыть. Иначе она должна уже быть, но скрыта по умолчанию удалять изображение в ней при закрытии панели. У вас же происходит копирование панели за счет метода .append(). |
Большое спасибо, уважаемый laimas, натолкнули на правильные мысли, и разъяснили что к чему :)
Решил проблему так: $('img#close_pop_up').click(function(){ $("div.pop_up_preview_foto").detach() }); Решил заодно поинтересоваться, нормальный ли это выход, или есть что-то более логичное? |
Ну в общем то да, этот метод тоже удаляет элемент, но в отличие от метода remove() он оставляет информацию о нем.
|
Часовой пояс GMT +3, время: 13:25. |