Я не уверен на 100%, какой вопрос мне следует задать - поскольку я слишком уверен в том, как лучше всего это сделать ... поэтому позвольте мне описать, что я пытаюсь сделать (используя упрощенный пример), и мы пойду оттуда.
У вас есть произвольные элементы HTML (IMG, A, TD, что угодно).
С помощью CSS им присваивается поведение HTML
.BoldSelection {
behavior: url(SelectBold.htc);
border: thin solid black;
}
Поведение просто помещает толстую границу вокруг элементов, когда они нажимаются - НО - им нужно установить ранее выбранный элемент с нормальной рамкой.
Итак, вот источник HTC. Это работало бы, если бы CurrentFocusedElementID был статическим между всеми экземплярами поведения. Но это не так.
<Public:Attach Event="onContentReady" onEvent="LoadInit" />
<Script Language="VBScript" type="Text/VBScript">
Sub LoadInit
element.onClick = getRef("setFocusedElement")
End Sub
Sub setFocusedElement
set ele = document.getElementByID(CurrentlyFocusedElementID)
ele.style.border = "thin solid black"
CurrentlyFocusedElementID = element.id
element.style.border = "thick solid black"
End Sub
</Script>
Я также подумал, что если бы я мог хранить произвольное свойство или атрибут в DOM содержащего документа, то я мог бы использовать это как общее место для поиска последнего активного элемента ... увы, я не могу найти способ сделать это без какого-либо взлома (т. е. угона значения класса тела)
Я бы хотел сохранить весь код, содержащийся в HTC. Мне нравится модульная мода делать это таким образом ... таким образом, я могу просто назначить поведение CSS и все готово - никаких обратных вызовов ... никаких родительских атрибутов ... никаких HTML-компонентов для объявления.
Как бы вы посоветовали мне заняться этим?
Заранее спасибо.