2010-07-29 1 views
0

Итак, я наконец-то выяснил систему для обновления частей экрана с использованием Ajax, Taconite и jQuery в Django, вроде как частичные части Ruby on Rails.Ajax заменяет кучу HTML, как обновлять связанные действия jQuery, такие как Drag And Drop?

Я был доволен, но, к сожалению, код, связанный с щелчком и перетаскиванием, не выполняется.

Я заменяю html внутри divs.

Как я могу сохранить свой код модульным (отдельные фрагменты контента в обновляемых div), но убедитесь, что мои jQuery перетаскивают, droppables, clickables, hoverables и т. Д. Активируются?

Спасибо!

Update

настройка I A $(document).ready(callasetupfunction)[как рекомендовано ниже] и это, кажется, вызывался после каждого вызова AJAX. Это ожидаемое поведение для .ready?

Я также заметил, что я могу связывать несколько функций с $(document).ready(). Так что я могу это сделать (другими словами, это намного лучше, чем установка onload huh?)

ответ

0

Без просмотра вашего кода единственным советом, который я могу придумать, является вытягивание частей вашего кода, которые вызывают .draggable и т. Д. (возможно, тот, который принимает селектор), и добавляет эту функцию в качестве обратного вызова после завершения вызова ajax.

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

Редактировать: похоже, вам может понадобиться придерживаться вызова функции javascript в теге скрипта в вашем ответе, если вы настроены на использование таконита.

+0

Спасибо! Да, я думал, что мне нужно будет обработать обработчики событий в вызове функции, чтобы восстановить их. Я делал грубую силу, но стараюсь тщательно извлечь обработчиков в более глобальные, так что это может быть один контроллер, который срабатывает, какие области восстанавливают прослушивание. Я нашел, что Taconite - довольно удобный способ управления экраном, но он не очень СУХОЙ, если вы не тщательно спланировали все. Что такое альтернатива использованию таконита? – iJames

+0

Честно говоря, я бы, наверное, просто освежился с помощью метода .ajax jQuery. Я не знаю вашего случая использования - он может быть вам не подходит. Я не большой поклонник сгенерированного javascript, хотя - я стараюсь сохранить всю свою клиентскую сторону JS-логики. YMMV. – jeremiahd

+0

Эй! Ваше начальное предложение поместить все в вызываемую функцию сработало! Теперь я могу повторять вызовы Ajax, и мои объекты остаются отзывчивыми, что очень круто. То, что я сделал с Taconite, создало один шаблон taconite.xml Django. При этом я проверяю, заменяю ли я каждый отдельный раздел страницы. Я использую . Работает довольно чисто. Теперь я добавлю javascript-вызов для каждого раздела, и он должен работать до тех пор, пока я могу связать все функции, которые нужно вызвать! Еще раз спасибо! – iJames