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, время: 01:30. |