[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отключение двойного выполнения
mrmaloy
Добрый день.
Помогите решить пожалуйста проблему:

В документе имеется ссылка на javascript файл "doelement.js" с jquery

$(".element").click(function({
some code...
});


Так же на странице присутствует кнопочка по которой подгружается часть странички ajax'ом - в этой части так же используется файл "doelement.js" что бы выше указанный код работал с подгруженным контентом.
В итоге при нажатии на кнопку происходит 2 ajax запроса:
1. Сама часть странички
2. doelement.js_=12345678

Проблема в том что после того как doelement.js подгружен в документ второй раз
нажатие на $(".element") обрабатывается дважды и some code исполняется соотвественно дважды.

Добавление add/removeClass("active") на время выполнения функции ни к чему не привели, подскажите пожалуйста что делать?



Спустя 5 минут, 52 секунды (24.01.2012 - 15:18) redreem написал(а):
не подгружать 2-й раз. или 1-й. если элементы динамические - то функцию обработки лучше вынести в мейн, а сам факт подключения таскать динамически за элементом. тогда каждый раз будет новое переопределение.

Спустя 3 минуты, 43 секунды (24.01.2012 - 15:22) mrmaloy написал(а):
redreem
В том и проблема что нужно держать этот скрипт и в главном документе и что бы с подгруженным контентом работало.

Спустя 6 минут, 5 секунд (24.01.2012 - 15:28) inpost написал(а):
mrmaloy
javascript.ru Там есть учебник, где-то на 4-6 уроке как раз разбирался этот вопрос, как заставить реагировать лишь один раз.

Спустя 3 минуты, 10 секунд (24.01.2012 - 15:31) redreem написал(а):
так я и говорю - в doelement.js размести функцию-обработчик и подключай 1 раз в мейне:
function onclickHandler(el) {
some code...
});

,а рядом с каждым элементом, на который нужен этот онклик пиши:

<script>$(".element").click(function({onclickHandler(this);});</script>


Спустя 20 минут, 7 секунд (24.01.2012 - 15:51) mrmaloy написал(а):
redreem
Огромное спасибо за подсказку!
Решил проблему обозначив функцию window.doelement = function(arg){}
Теперь ее можно вызывать из подгруженого контента вот так: window.doelement(arg);

Спасибо большое.

Спустя 5 минут, 21 секунда (24.01.2012 - 15:56) redreem написал(а):
ну такую "мелочь" вносить в windows может конечно и не целесообразно. тебе виднее - я ж проекта не видел. пожалуйста.


_____________
<td></td>...<td></td>...<td></td>... тихо стучали колеса поезда в ночной тишине.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.