Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Помогите с jQuery

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

avtomoda

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь в написании кода на jQuery. Есть следующий код:
 
<div id="gallery_2">
                                                                                            <div id="panel_2">
                        <a id="largeNref" class="fancybox" rel="group" href="/upload/iblock/39f/20151118103540.jpg" name="more_photo">
                        <img id="largeImage_2" src="/upload/resize_cache/iblock/39f/400_200_2/20151118103540.jpg"
                        alt="Набор автомобилиста" number_inegration="1" />
                        </a>
                    </div>
                                                                                                <div id="panel_3">
                        <a id="largeNref_1" class="fancybox" rel="group" href="/upload/iblock/b17/IMG-20151120-WA0002.jpg" name="more_photo">
                        <img id="largeImage_3" src="/upload/resize_cache/iblock/b17/400_200_2/IMG-20151120-WA0002.jpg"
                        alt="Набор автомобилиста" number_inegration="2"/>
                        </a>
                    </div>
                                                                                                <div id="panel_3">
                        <a id="largeNref_1" class="fancybox" rel="group" href="/upload/iblock/e78/IMG-20151120-WA0003.jpg" name="more_photo">
                        <img id="largeImage_3" src="/upload/resize_cache/iblock/e78/400_200_2/IMG-20151120-WA0003.jpg"
                        alt="Набор автомобилиста" number_inegration="3"/>
                        </a>
                    </div>
                                        
            
            <div id="thumbs_2">
                                                    
                <img src="/upload/resize_cache/iblock/39f/100_100_2/20151118103540.jpg" alt="Набор автомобилиста" href="/upload/iblock/39f/20151118103540.jpg" number_inegration="1" />
                                        
                <img src="/upload/resize_cache/iblock/b17/100_100_2/IMG-20151120-WA0002.jpg" alt="Набор автомобилиста" href="/upload/iblock/b17/IMG-20151120-WA0002.jpg" number_inegration="2" />
                                        
                <img src="/upload/resize_cache/iblock/e78/100_100_2/IMG-20151120-WA0003.jpg" alt="Набор автомобилиста" href="/upload/iblock/e78/IMG-20151120-WA0003.jpg" number_inegration="3" />
                        
            </div>
            </div>
 
Задача: при нажатии на картинку из <div id="thumbs_2"> что бы эта картинка и href вставали в <div id="panel_2">
 
Сначала написал так:
$('#thumbs_2').delegate('img','click', function(){
        $('#largeImage_2').attr('src',$(this).attr('src').replace('/100_100_2/','/400_200_2/'));
        $('#largeNref').attr('href', $(this).attr('href'));
    });
Вроде картинки меняются и url меняется, но получается что в fancybox одна и та же картинка прокручивается 2 раза. Потом понял что так оно и будет. Решил зайти с другого края и менять не картинки и url а содержимое дивов. Написал:
 $('#thumbs_2').delegate('img','click', function(){
        var str_tmp = '';
        str_tmp = document.getElementById('panel_2').innerHTML;
        document.getElementById('panel_2').innerHTML = document.getElementById('panel_3').innerHTML;
        document.getElementById('panel_3').innerHTML = str_tmp;
    });
Но опять не то. Меняет и картинку и url, но зараза в fancybox опять всегда 2 одинаковые картинки. Опять задумался и понял что пишу код не правильно.
Мне нужно что бы при нажатии картинки из <div id="thumbs_2"> по какой то переменной (например number_inegration - специально ее написал) находился div содержащий такую же переменную и менялся инфой с div из <div id="panel_2">
Попробую написать проще если кому не понятно: информация из  <div id="panel_2"> показывает,  информация из <div id="panel_3"> закрыта (css display: none;) В  <div id="thumbs_2"> превью изображений из этих дивов. Задача при нажатии на превью менялась картинка в <div id="panel_2"> та что показывает, а при нажатии картинки из <div id="panel_2"> звпускался fancybox и показывал все картинки из <div id="panel_2"> и <div id="panel_3">
Может кто поможет написать или дать верный совет? Я в скриптах не силен а сделать нужно.

Всего записей: 40 | Зарегистр. 17-01-2014 | Отправлено: 01:13 19-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avtomoda
есть же тема - Вопросы по jQuery
 

Цитата:
Меняет и картинку и url, но зараза в fancybox опять всегда 2 одинаковые картинки.

фэнсибокс может преобразовывать первоначальную структуру при инициализации и больше ее не использовать - только свою. проще посмотреть API скрипта, там наверняка есть то, что нужно.
 

Цитата:
        str_tmp = document.getElementById('panel_2').innerHTML;  
        document.getElementById('panel_2').innerHTML = document.getElementById('panel_3').innerHTML;  
        document.getElementById('panel_3').innerHTML = str_tmp;  

зачем такая мешанина, если уже используете jquery??

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 01:17 19-04-2016
avtomoda

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модераторуavtomoda
есть же тема - Вопросы по jQuery [?]
 
 
 
Цитата:
        str_tmp = document.getElementById('panel_2').innerHTML;  
        document.getElementById('panel_2').innerHTML = document.getElementById('panel_3').innerHTML;  
        document.getElementById('panel_3').innerHTML = str_tmp;  
 
зачем такая мешанина, если уже используете jquery??
 
Ну надо же что то делать пробовать вот и пробовал посмотреть.
Мне надо было сначала понять принцип как написать вот я поставил простой код java

Всего записей: 40 | Зарегистр. 17-01-2014 | Отправлено: 01:45 19-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avtomoda

Цитата:
поставил простой код java

это javascript, не java - разные вещи.
 
и, кстати
https://github.com/fancyapps/fancyBox/issues/257

Цитата:
fancyBox was not designed to handle dynamic update of the gallery items.
 

правда 2012, может что то изменилось
 
в интернете есть попытки динамического добавления элементов, но нужно их изучать и пробовать.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 01:52 19-04-2016 | Исправлено: Mavrikii, 01:54 19-04-2016
nuker96

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fancybox построен весьма просто. вам нужно привязаться к событию разворачиванию, а затем... выдернуть нужный текст по тегу объекта и вставить его в нужное место.
 
Добавлено:
http://stackoverflow.com/questions/13826584/call-function-after-fancybox-loaded
 
Добавлено:

Цитата:
в интернете есть попытки динамического добавления элементо

хахаха лололо
это у тебя попытки

Всего записей: 27 | Зарегистр. 22-08-2011 | Отправлено: 22:58 26-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nuker96

Цитата:
хахаха лололо  
это у тебя попытки

последний раз прошу - не флеймите.
 
вопрос был о замене/добавке уже в инициализированном галерее фэнси, уже в рабочем варианте.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 23:16 26-04-2016 | Исправлено: Mavrikii, 23:17 26-04-2016
nuker96

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
дык кто мешает его класс расширить. учите мат часть мол чел.

Всего записей: 27 | Зарегистр. 22-08-2011 | Отправлено: 23:24 26-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nuker96
если бы человек это умел - он бы не задавал подобных вопросов на форуме.
если считаете себя умнее его, то напишите рабочий код для данной ситуации и покажите спрашивающему.
иначе - просто молчите. сделать можно много чего, хоть с нуля написать или переделать, вопрос во времени и цене усилий. будьте добры подсказывать конкретикой, а не водой.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 23:27 26-04-2016 | Исправлено: Mavrikii, 23:28 26-04-2016
nuker96

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я рекомендую Вам ознакомиться с этим? дабы Ваши попытки не были тщетными. https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet

Всего записей: 27 | Зарегистр. 22-08-2011 | Отправлено: 23:27 26-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nuker96
?? каким боком это относится к данной теме?

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 23:35 26-04-2016
nuker96

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
из уважения к этому форуму, мне бы хотелось перейти с Вами на личное общение. Но! В этой статье описываются попытки интернета манипулировать объектами на странице. Поймите, все браузеры построены на DOM модели, ее можно расширять, всегда. С далеких 2000-ых уже нет попыток, есть конкретные реализации, а если Вы вникнете в спецификации более детально, то поймете как сильно мы отстаем в технологиях. Jquery появился как инструмент, позволяющий решать те или иные задачи более быстро. Манипулировать объектами так как нам хочется. Теперь есть HTML5, он предоставил нам API которое ничуть не уступает jquery или prototype. Об этом книги пишут, я не смогу уложиться в один пост. сорян.
 
Добавлено:
Mavrikii
все пиши в личку....

Всего записей: 27 | Зарегистр. 22-08-2011 | Отправлено: 23:43 26-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nuker96
ну и - как это относится к данной теме? и кто сказал, что автор оперирует с html5, а не 4.
прошу, не нужно воды не по теме - этим вы сбиваете участников форума, опыта которых не хватает осознать возможные проблемы и решения. если хотите описать что то более конкретно и по теме - пишите в ней. мне писать об этом не стоит - у меня опыта достаточно, именно поэтому я пытаюсь помочь остальным, а не задаю вопросы. и не просто пинком в каком то направлении, а более не менее конкретикой по поставленному вопросу. чего и вам желаю.  
ps: и если 96 это год, то я гораздо старше - давно уже "не мол. чел."

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 23:48 26-04-2016
nuker96

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
и если 96 это год, то я гораздо старше - давно уже "не мол. чел."

это регион

Всего записей: 27 | Зарегистр. 22-08-2011 | Отправлено: 00:08 27-04-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
selectList.setAttribute("onChange", "$.get('..\/languages\/'+this.value+'?' + Math.random(), function(data) { $('.result').html(data); parent.document.getElementById('Lay_01TT_L_span').innerHTML=getFieldLF(data, 'Tittle'); setField('fN',getFieldLF(data, 'FromName')); setField('fE',getFieldLF(data, 'FromEmail')); setField('tN',getFieldLF(data, 'ToName')); setField('tE',getFieldLF(data, 'ToEmail')); setField('Su',getFieldLF(data, 'Subject')); setField('msg',getFieldLF(data, 'Message')); document.getElementById('_btnSend').innerHTML = getFieldLF(data, 'ButtonSend'); _MessageSucesSended=getFieldLF(data, 'MessageSucesSended'); _MessageNotSucesSended=getFieldLF(data, 'MessageNotSucesSended'); _Error=getFieldLF(data, 'Error'); });");

 

Цитата:
$.get('

этот $.get('  у меня не выполняется в IE6 с последней 1.х версией jQuery.
 
может кто знает в чём причина ?

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 04:23 20-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
Вопросы по jQuery
 

Цитата:
может кто знает в чём причина ?

сообщение об ошибке какое?

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 04:26 20-10-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
сообщение об ошибке какое?

никакое, просто не выполняется
 
Спасибо, я попробую другие от Вас варианты

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 04:40 20-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
никакое, просто не выполняется  

в IE6 нельзя цеплять обработчики через setAttribute
http://stackoverflow.com/questions/3163212/setattribute-doesnt-work-in-ie6
если уж используете jQuery, то почему не с его помощью??

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 04:46 20-10-2016 | Исправлено: Mavrikii, 04:46 20-10-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня есть:

Цитата:
if(document.createElement&&(obj=document.createElement(_obj_typ))){
        obj.className=_class;
        obj.style.zIndex=_zIndex;
        obj.id=obj.name=_id;
        obj.style.position=_position;
                ....
 

 
должно пойти

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 04:55 20-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
у меня есть

и что это "есть"?  
 
в IE6 вы можете создать аттрибуте onchange, но не можете повесить на него функцию обработчик таким образом. чем плохо $('...').change(function() { }); ?
 
ссылку же дал, там написано

Цитата:
So, any of these will work:
 
// Using reflected property
theElement.onclick = yourFunction;
 
// Using DOM2 standard addEventListener; note it's "click", not "onclick"
theElement.addEventListener("click", yourFunction, false);
 
// IE's non-standard alternative to addEventListener
theElement.attachEvent("onclick", yourFunction);
...not
 
// This doesn't work on IE (at least)
theElement.setAttribute("onclick", "yourFunction();");

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 04:58 20-10-2016 | Исправлено: Mavrikii, 04:59 20-10-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо я днем поэкспериментирую  
у нас сейчас ночь 4:00
 
а там целый Java проект

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 05:05 20-10-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » Помогите с jQuery


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru