|
|
|
| Здравствуйте!
использую query
заметил что если часть текста подгрузить через джаву и в этом тексте должно вызываться какие-то функции query, то они не работают.
пример.
я сделал список товаров и редактирование их с помощью всплывающей формы. после того как изменения внесены на основной странице список товаров заново подгружается через аджах.
после того как список товаров погрузился, ссылки на редактирование работают некорректно, то-есть функции query неработают.
использую thickbox.js
полез в код, вот часть кода которая вызывается с самого начала
var tb_pathToImage = "/templates/images/loadingAnimation.gif";
$(document).ready(function(){
tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
imgLoader = new Image();// preload image
imgLoader.src = tb_pathToImage;
});
function tb_init(domChunk){
$(domChunk).click(function(){
var t = this.title || this.name || null;
var a = this.href || this.alt;
var g = this.rel || false;
tb_show(t,a,g);
this.blur();
return false;
});
}
|
сама функция вызывается нажатием на ссылку в которой есть class="thickbox"
короче я код в скрипте заменил на
var tb_pathToImage = "/templates/images/loadingAnimation.gif";
function www(t,a,g){
tb_show(t,a,g);
imgLoader = new Image();// preload image
imgLoader.src = tb_pathToImage;
}
|
а в саму ссылку добавил onclick="www(this.title,this.href,this.rel); this.blur(); return false;"
в принцыпе я ничего нового не делал, просто изменил способ вызова функции
в таком виде всё работает и после подгрузки списка товаров, но появились побочные эфекты
- функция первый раз срабатывает со второго щелчка
- всплывающее окно клонировалось и добавилось ниже но в нём стало пусто
если кто поможет, буду благодарен
P.S.
сделал вызов функции так onclick="www(this.title,this.href,this.rel); return false;" осталась только одна проблема, при первом вызове функции появляется два всплывающих окна, второе ниже и пустое | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(25.12.2009 в 11:25)
| | Jquery вы хотели написать, да?
>после того как изменения внесены на основной странице список товаров заново подгружается через аджах.
вы можете отследить этот момент погрузки, задать нужным ссылкам класс "new_thickbox" и вызвать
tb_init('a.new_thickbox'); | |
|
|
|
|
|
|
|
для: AlexSol
(25.12.2009 в 11:35)
| | я выше неправильно написал, код не заменял а просто добавил свою функцию, поэтому и появлялось два окна, пустое вызывалось моей функцией.
>>>>вы можете отследить этот момент погрузки, задать нужным ссылкам класс "new_thickbox" и вызвать tb_init('a.new_thickbox');
не понял как именно вызывать..
и такой вопрос, ведь редактирование одной записи может быть неоднократное, что тогда каждый ра новый класс делать?
насколько я понимаю скрипт начинает работать от этого $(document).ready(function()
получается что такая конструкция не работает после того, как текст в которой она вызывается подгружается через джавускрипт.
возможно как-то по другому начать вызывать скрипт? например через onclick, как я пытался сделать, но у меня неполучилось | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(25.12.2009 в 11:43)
| | $(document).ready(function()
выполняется один раз. при заргузке страницы. это событие не отслеживает изменений вносимых вами при редактирование.
как именно вызвать? после того как внесли изменения
прямо так tb_init(' тут селектор к ссылке');
дайте ссылку на страницу или архив с исходником прикрепите | |
|
|
|
|
 37.9 Кб |
|
|
для: AlexSol
(25.12.2009 в 11:53)
| | прикрепил скрипт
сразу грузится список товаров (там один товар)
product
после внесения изменений список товаров изменяется
edit poduct
после этого всплывающая форма не включается и ссылка просто перекидывает на новую страницу
файл form.php - это файл всплывающей формы и он же обработчик формы
после отправки формы форма заново подгружается | |
|
|
|
|
|
|
|
для: AlexSol
(25.12.2009 в 11:53)
| | походу решил, но ещё не уверен, если у вас будет время то прокомментируйте
короче в новых ссылках делаю onclick="tb_show(this.title, this.href, this.rel); return false;" и похоже что работает, надо всё хорошо проверить | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(25.12.2009 в 13:29)
| | перед return false можно еще this.blur(); добавить )
а так правильно
единственное - коли вы используете jquery то логично использовать именно его ajax методы
$.post() / $.get() | |
|
|
|
|
|
|
|
для: AlexSol
(25.12.2009 в 13:33)
| | я пока только осваиваю jquery, так что тут для аджакса использовал свой скрипт который мне понятен
вот что странно, на сервере форма отправляется на новую страницу.. пробовал в разных бразерах..
на локале всё работает отлично, файлы вроди все переписал | |
|
|
|