Обнулить значение переменной
Доброго времени суток, уважаемые жители форума. Столкнулся с такой проблемой, есть функция, что-то вроде лайтбокса. Есть переменная 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, время: 11:32. |