| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Отбор элементов для подсветки |
| Автор: Astraller 3.10.2007, 14:57 |
| Собственно задача: PHP скрипт выдаёт стандартный HTML но некоторые его элементы при onmouseout должны подсвечиваться. События креплю к ним скриптом - чтобы не засорять код. Возникает вопрос каким свойством пометить теги чтобы не нарушать спецификацию, но скриптом можно было легко собрать эти обьекты в один массив для дальнейшей работы? PS Возможно немного сумбурно обьяснил но я уже пол дня с этим бьюсь |
| Автор: dsCode 3.10.2007, 16:45 |
| Astraller, а эти (подсвечиваемые) элементы статичные или же в процессе какой-то элемент может стать "подсвечиваемым", с какого-то это свойство может быть снято? Если статические и если предполагается обязательная работа с ними, можно сразу массив сформировать, где Вы крепите к ним события (на этом же этапе Вы знаете все элементы). Если динамические а какое будет нарушение спецификации? Что, разве нельзя написать свой любой аттрибут? <span id="test" podsvechivaemiy="true">test</span> =) Пройтись циклом по DOM'у, получить всех подсвечиваемых. |
| Автор: Astraller 3.10.2007, 16:51 |
| Да - в процессе работы они могут меняться. Но это уже пол беды. Странно, у меня валидатор ругается когда я например к ячейке TD пытался присвоить name=".." И IE/Opera не нашли все эти елементы по document.getElementsByName... :( |
| Автор: cruelangel 3.10.2007, 18:08 |
| <span onmouseover="over(this)"> неужели удастся сильно сэкономить? </span> |
| Автор: Astraller 3.10.2007, 21:08 |
| Ну не только onmouseover но и onmouseout. Даи кроме экономии там есть и другие проблемы. |
| Автор: cruelangel 3.10.2007, 21:19 |
| > Ну не только onmouseover но и onmouseout. нет, onmouseover достаточно > Даи кроме экономии там есть и другие проблемы. какие? |
| Автор: Astraller 3.10.2007, 21:28 |
| Хм. Ну-ка поподробнее о том что onmouseover достаточно. Обьясню - половину кода пишет менеджер (блондинко) которая просто не способна описать более двух ковычек в свойстве тега. |
| Автор: cruelangel 3.10.2007, 21:31 |
| Загадка: может ли onmouseout произойти раньше onmouseover? |
| Автор: Astraller 4.10.2007, 08:57 |
| Отгадка: для одного элемента - нет! Но как тушить подсветку без onmouseout?? |
| Автор: dstorm81 4.10.2007, 09:20 |
| легко к примеру когда создаешь элемент который должен выполнять спецификацию присвой ему alt или title =1 то бишь это и будет идентификация твоего тэга затем var makeRoll=function(e) { e=e||window.event; var E=e.target||e.srcElement; if(E.nodeName=="A" && E.alt=='1'){E.style.background="red"}// к примеру это ссылки к которых alt=1 } document.ounmouseout=makeRoll; |
| Автор: Astraller 4.10.2007, 10:05 |
| Хм. Классное решение - спасибо |
| Автор: cruelangel 4.10.2007, 12:09 |
| только событие надо вешать не на документ, а на элемент... |
| Автор: Astraller 4.10.2007, 12:11 | ||
Предложите своё решение. PS Снимаю шляпу - вы были правы |
| Автор: SelenIT 4.10.2007, 15:07 |
| Имхо, лучше всего использовать CSS-класс - его можно сделать одновременно и маркером элементов, подлежащих подсветке, и для объединения CSS-свойств, которые будут меняться при наведении. А насчет плюсов и минусов глобального перехвата клика с последующей проверкой "а что же это мы кликнули" против прицельного навешивания обработчиков отдельным элементам уже была дискуссия , например, http://forum.vingrad.ru/forum/topic-119868.html. |