Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как реализовать перемещение элементов (типа move)? (https://javascript.ru/forum/jquery/6991-kak-realizovat-peremeshhenie-ehlementov-tipa-move.html)

bobroff 09.01.2010 22:28

Как реализовать перемещение элементов (типа move)?
 
Здравствуйте.

Например есть разметка
<div id="container">
   <div id="1"></div>
   <div id="2"></div>
   <div id="3"></div>
   <div id="4"></div>
   <div id="5"></div>
</div>


Необходимо переместить <div id="4"> перед <div id="1">.

Я придумал следующий вариант:
1. Создаю копию <div id="4"> с помощью clone(true);
2. Вставляю ее в <div id="container"> с помощью prepend();
3. Удаляю старый <div id="4"> с помощью remove().

Но в моей случае, данный вариант не подходит. Необходимо не создавать копию, а именно перемещать уже заранее созданный элемент. Подскажите как реализовать?

Заранее, спасибо...

Octane 09.01.2010 22:41

$("#container").prepend($("#4").get(0))


И по стандартам id не должен начинаться с цифры.

bobroff 09.01.2010 22:57

Цитата:

Сообщение от Octane (Сообщение 40096)
$("#container").prepend($("#4").get(0))


И по стандартам id не должен начинаться с цифры.

Id обозвал так для примера. Спасибо за код, попробую его.

Kolyaj 09.01.2010 23:02

Цитата:

Сообщение от Octane
И по стандартам id не должен начинаться с цифры.

Пруфлинк?

Octane 09.01.2010 23:18

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
http://www.w3.org/TR/1999/REC-html40...html#type-name

Kolyaj 09.01.2010 23:43

Octane,
ок. Хотя при этом id-шники, начинающиеся на :, например, прекрасно работают. Да я и не вижу смысла в этом ограничении.

bobroff 10.01.2010 10:37

Цитата:

Сообщение от Octane (Сообщение 40096)
$("#container").prepend($("#4").get(0))

Опробовал данный код, в моем примере он не работает, т.к.:
1. Если внутри <div> есть скрипты <script> - то они не переносятся.
2. Если внутри <div> есть hidden или display:none элементы - то они также не переносятся.

Так что пока вопрос остается открытым.

micscr 10.01.2010 15:52

Цитата:

Сообщение от bobroff (Сообщение 40116)
Так что пока вопрос остается открытым.

$('#id4').insertBefore('#id1');


Часовой пояс GMT +3, время: 00:21.