Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Деструктор объектов. (https://javascript.ru/forum/misc/2397-destruktor-obektov.html)

skyfish 19.12.2008 20:44

Деструктор объектов.
 
Помогите пожалуйста разобраться в ситуации.
Есть на одной страницы разновидность lightbox под названием sexylightbox.:)

и скрипта который динамически подгружает картинки, которые нужно лайтбоксом отоброжать. Когда я подгружаю такую картинку:

document.getElementById("mybox" +i).innerHTML ="........";

мне нужно написать такую строчку, чтобы картинка показывалась в лайтбоксе (чтобы придать тегу rel="sexywhite" картинки событие):

new LightBox({find:'sexywhite',color:'white', OverlayStyles:{'background-color':'#000'}});


Фишка в том, что если я несколько раз прокрутил и добавил несколько картинок динамически, то при челчке на старые картинки, lightbox запускается несколько раз (сколько раз мне приходилось подгружать, тем самым вызывать
new LightBox({find:'sexywhite',color:'white', OverlayStyles:{'background-color':'#000'}});
)
.

Вижу решение, вызвать каждый раз деструктор, предыдущего объекта
LightBox({find:'sexywhite',color:'white', OverlayStyles:{'background-color':'#000'}});
и создвать после этого ОДИН новый.

Правильно ли я пониманю, проблему и как это реализовать?

Octane 19.12.2008 20:54

У вас же узел <img> остается тем же при прокрутке картинок? вот на него и вешается несколько событий, пересоздавайте <img>, если нет возможности изменить обработчик события.

Андрей Параничев 19.12.2008 21:22

Это недоработка скрипта, что он не дает программисту свободы выбора, каким методом будет выбран элемент.

skyfish 22.12.2008 10:17

спасибо. переписал img и как к бабке сходил
for (i=1;i<=a;i++)
	   {
	   temp=document.getElementById("mybox" + i).innerHTML;
	   document.getElementById("mybox" + i).innerHTML="";
	   document.getElementById("mybox" + i).innerHTML=temp;
	   }


Часовой пояс GMT +3, время: 14:23.