Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2015, 06:57
Аватар для Takasu
Интересующийся
Отправить личное сообщение для Takasu Посмотреть профиль Найти все сообщения от Takasu
 
Регистрация: 02.06.2015
Сообщений: 11

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

Последний раз редактировалось Takasu, 02.06.2015 в 07:04.
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2015, 07:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

src = null; - в этом вообще нет смысла, ибо
src = $(this).attr('src'); -сразу же она примет значение
а источником этого значения будет изображение по которому щелкнули.
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2015, 07:18
Аватар для Takasu
Интересующийся
Отправить личное сообщение для Takasu Посмотреть профиль Найти все сообщения от Takasu
 
Регистрация: 02.06.2015
Сообщений: 11

Сообщение от laimas
src = null; - в этом вообще нет смысла, ибо
src = $(this).attr('src'); -сразу же она примет значение
а источником этого значения будет изображение по которому щелкнули.
Я это понимаю, и изначально там этой строчки не было, появилась после того как я понял что переменная, как раз таки, не принимает новое значение.
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2015, 07:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

И на чем это утверждение строится?
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2015, 07:30
Аватар для Takasu
Интересующийся
Отправить личное сообщение для Takasu Посмотреть профиль Найти все сообщения от Takasu
 
Регистрация: 02.06.2015
Сообщений: 11

Сообщение от laimas
И на чем это утверждение строится?
Проверил, извиняюсь, вы правы.
Путём
alert(src);
было проверено что переменная таки принимает новое значение, но тогда я совершенно не понимаю почему не меняется изображение..
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2015, 07:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А что должно измениться? Вставляемое изображение <img src="'+src+'" alt=""/> получает путь изображения preview_foto, а значит будет показано оно.
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2015, 07:43
Аватар для Takasu
Интересующийся
Отправить личное сообщение для Takasu Посмотреть профиль Найти все сообщения от Takasu
 
Регистрация: 02.06.2015
Сообщений: 11

Вот ссылка http://takasu.pp.ua/
Блок "ТОП ПРОДАЖ"
Alert на всякий случай оставил.
Ответить с цитированием
  #8 (permalink)  
Старый 02.06.2015, 07:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$('body').append('<div class="pop_up_preview_foto">' .... а потом передали в него галерею изображений, на примере как выше с авто.
А если показать одно изображение по щелчку на нем, нужно открыть эту панель, загрузить а него фото, а при закрытии уничтожить ее, а не скрыть. Иначе она должна уже быть, но скрыта по умолчанию удалять изображение в ней при закрытии панели. У вас же происходит копирование панели за счет метода .append().
Ответить с цитированием
  #9 (permalink)  
Старый 02.06.2015, 10:35
Аватар для Takasu
Интересующийся
Отправить личное сообщение для Takasu Посмотреть профиль Найти все сообщения от Takasu
 
Регистрация: 02.06.2015
Сообщений: 11

Большое спасибо, уважаемый laimas, натолкнули на правильные мысли, и разъяснили что к чему
Решил проблему так:
$('img#close_pop_up').click(function(){
					$("div.pop_up_preview_foto").detach()
			});

Решил заодно поинтересоваться, нормальный ли это выход, или есть что-то более логичное?
Ответить с цитированием
  #10 (permalink)  
Старый 02.06.2015, 10:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну в общем то да, этот метод тоже удаляет элемент, но в отличие от метода remove() он оставляет информацию о нем.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значение переменной через запятую DDSSDD Серверные языки и технологии 41 16.10.2014 15:01
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
Как значение переменной вставить в имя переменной? jsgogo Общие вопросы Javascript 3 02.06.2013 12:11
В contains() не подставляется значение переменной Heger jQuery 2 11.12.2011 20:26
Значение переменной salex009 jQuery 1 05.12.2011 16:55