jquery-ui: droppable & draggable. Теряются события.
Хочу сделать простой скрипт где драг-объект перемещается в дроп-объект и при дропе одни меняются местами. И можно было поменять так бесконечное количество раз =)
У меня получается только один раз :( упрощенно код такой: <script src="jquery.js" type="text/javascript"></script> <script src="jquery-ui.js" type="text/javascript"></script> <script src="ui.draggable.js" type="text/javascript"></script> <script src="ui.droppable.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("img.drag").draggable({ revert: 'invalid', helper: 'clone', start: function(event, ui){ posit = $(this).attr("id"); obj = this} }); $("img.drop").droppable({ drop: function(event, ui) { drag_object= $(obj).clone(true); drop_object = $(this).clone(true); $(obj).replaceWith(drop_object); $(this).replaceWith(drag_object); } }); }); </script> <img class="drag" src='images_drag.jpg'> <img class="drop" src="images_drop.jpg"> Первый раз все отлично меняется, но после реплейса драг-объект становится неподвижным. |
Может, подойдет jquery.sortable?
|
да спасибо. наверно это то что мне нужно было.
Но щас я в некотором замешательстве.. Вопрос такой. Запустилась страничка. document.ready Отработал. Свойства элементам прописал.. а дальше я создаю новый элемент с уже существующим классом, но при этом jquery его уже больше не видет. Что делать? Как переинициализровать документ? или чо-то в этом роде чтобы jquery его подхватил? |
Ну либо jquery live(), либо перенавешивать все бинды. Но зачем удалять элемент, а потом создавать заново? перемещайте уже существующий. А если создаете действительно новый, на лету -- тогда же и навешиваете бинды. Как вариант, если создаете кучу однотипных элементов -- создайте заранее один шаблон, навестье на него обработчик, а потом просто клонируйте куда надо
|
[telepat mode]live[/telepat mode] немного опоздал :)
|
почему же телепат мод? вроде понятно :)
|
потому что "Свойства элементам прописал", а про события ничего не сказано, про события обычно говорят "назначил пару обработчиков"
p.s. а вообще это единственная трактовка поста, которую я придумал, а раз уж 2 человека, независимо друг от друга ... :) |
:) Возможно, просто telepat_mode.defaults.on === true? ;)
|
да да да да я так и сделал буквально сразу как понял что объекты удалять не надо. Ну в общем все равно я jquery оставил в покое...
на версию 1.3.2 IE8 выдает ошибку и ничо не работает. Ненавижу яваскрипт!!!!!!! |
Цитата:
|
Часовой пояс GMT +3, время: 13:12. |