|
|
|
| Как обратится из функции к вызвашему ээлементу?
Допустим есть ссылка:
<a href="url" class="myclass" onlick="ChangeClass()"></a>
Есть скрипит
function ChangeClass()
{
вот тут хочу обратится к ссылке, и поменять класс.
как обратится?
} | |
|
|
|
|
|
|
|
для: Zilog
(22.02.2009 в 21:57)
| | Вариант 1:
onclick="ChangeClass(this)"
| и в функции
function ChangeClass (obj) {
...
obj.className = 'новое имя класса';
...
}
|
Вариант 2: в самой ссылке ничего не менять, а в функции прописать
function ChangeClass (evt)
{
...
evt = evt || event, obj = evt.target || evt.srcElement;
obj.className = 'новое имя класса';
...
}
|
Ну и, если атрибут TARGET, отличный от _self у ссылки вы не задействуете, то в обоих случаях после вызова функции по клику необходимо отменить "действие по умолчанию" (переход по указанному url в атрибуте HREF ссылки), т.е. надо прописывать везде
onclick="ChangeClass(); return false"
или
onclick="ChangeClass(this); return false"
| , иначе ваше измение класса никто и не увидит :-) | |
|
|
|
|
|
|
|
для: PAT
(22.02.2009 в 22:09)
| | Спасибо, дружищще! Очень подробно, отдельное спасибо за развернутый ответ.
Ща попробуем.
Я хочу сделать закладки, которые показывают нужный див, скрывая остальные. С дивами вроде разобрался - эт нужно что бы текущий выбор подсветить.
Тут возникает вопрос - а если юзверь обновил страницу? Никак, кроме сессий, нельзя запомнить выбор? А если сессии - то надо через аякс устанавливать указатель на закладку, так?
и еще вопрос - во втором варианте что за параметр evt получает функция? | |
|
|
|
|
|
|
|
для: Zilog
(22.02.2009 в 22:29)
| | зачем сессии? яваскрипт умеет работать с куки. | |
|
|
|
|
|
|
|
для: sl1p
(22.02.2009 в 22:49)
| | Намёк понял.
Вот такой вопрос возник - а как обратится к родителю вызывающего элемента? :)
Есть в яве что то вроде parentId? | |
|
|
|
|
|
|
|
для: Zilog
(22.02.2009 в 23:29)
| | element.parentNode; | |
|
|
|
|
|
|
|
для: Zilog
(22.02.2009 в 22:29)
| | Реально функция во втором варианте ничего не получает.
Но аргумент evt нужен.
Для браузеров типа Mozilla. | |
|
|
|
|
|
|
|
для: PAT
(23.02.2009 в 04:24)
| | >Реально функция во втором варианте ничего не получает.
>Но аргумент evt нужен.
>Для браузеров типа Mozilla.
Только обратил внимание - в FF в этот код не работает:
evt = evt || event, obj = evt.target || evt.srcElement;
|
страница при клике уходит в перезагузку. Как бы оживить? | |
|
|
|
|
|
|
|
для: Zilog
(28.02.2009 в 07:12)
| | Правильно, не работает.
Обмишурился я.
Надо так:
var evt = (window.event) ? window.event : document.createEvent ('MouseEvents'), obj = evt.target || evt.srcElement;
|
| |
|
|
|