Почему "drop-target" state нельзя задать из HTML-кода?
От: Hawk Россия  
Дата: 21.10.10 17:05
Оценка:
Есть несколько textarea, каждая из которых имеет свой ID:
<textarea #one />
<textarea #two />
<textarea #three />

Для реализации drag-and-drop (за рамками HTMLayout) необходим способ пометить эти элементы как drop-target. Пытаюсь сделать так:
<textarea #one drop-target />
<textarea #two drop-target />
<textarea #three drop-target />

Не работает. Т.е. пытаюсь выполнить, например, такой код:
dom::element textarea = root.find_first(":drop-target");

... и в результате получаю invalid элемент.

Похоже, парсер при анализе HTML-кода данный state тупо пропускает. Ибо, если заменить "drop-target" на "expanded":
<textarea #one expanded />
<textarea #two expanded />
<textarea #three expanded />

dom::element textarea = root.find_first(":expanded");

... все начинает работать.

Можно ли сделать так, чтобы HTML-парсер добавлял в DOM все возможные states (перечисленные в enum ELEMENT_STATE_BITS), а не только какое-то их подмножество? Или, на худой конец, добавлял states, связанные с drag-an-drop. На случай, если drag-and-drop реализуется "руками" за рамками HTMLayout.
Re: Почему "drop-target" state нельзя задать из HTML-кода?
От: c-smile Канада http://terrainformatica.com
Дата: 21.10.10 19:22
Оценка: 4 (1)
Здравствуйте, Hawk, Вы писали:

H>Не работает. Т.е. пытаюсь выполнить, например, такой код:

H>
dom::element textarea = root.find_first(":drop-target");

H>... и в результате получаю invalid элемент.

Ты же DOM атрибуты описываешь? Ну так и пиши

dom::element textarea = root.find_first("*[drop-target]");


Что означает "дай мне все элементы у которых задан аттрибут drop-target".

:drop-target это state flag который используется моей внутренней имплементацией D&D.
Т.е. его lifespan управляется изнутри.
Ты можешь сделать SetElementState(he,STATE_DROP_TARGET,0)
Или скажем в CSSS!:

*[drop-target]
{
attached!:self:drop-target = true;
}
но под свою отвественность (да и смысла особого в этом я не вижу).
Первая же моя D&D операция его сбросит.

Мой D&D механизм запускается если есть элементы с описанными
draggable:copy-move ...; 
и 
accept-drop: selector(select.source > option);

CSS свойствами.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.