Как узнать, какой элемент называется функцией в Javascript? - PullRequest
1 голос
/ 18 декабря 2010

Я делаю эту страницу со множеством ссылок на изображения, которые меняются, когда мышь над ними висит.У меня есть функция для изменения изображения здесь:

    function hoverImg(element) {
        if (element.src.indexOf("_hover.png") == -1) {
            element.src = element.src.replace(".png","_hover.png");
        } else {
            element.src = element.src.replace("_hover.png",".png");
        }
    }

Тем не менее, я должен дать «this» в качестве параметра для функции для каждого события onmouseover и onmouseout для каждого элемента.Есть ли способ просто узнать, какой элемент называется функцией?Копирование функций не вариант, потому что, как я уже сказал, возможно, будет сто добрых сотен этих маленьких изображений на страницу, и страницы все равно будут в конечном итоге генерироваться из данных базы данных.Добавление «этого» каждый раз кажется крайне излишним ...

Ответы [ 2 ]

2 голосов
/ 18 декабря 2010

Попробуйте window.event.srcElement в вашей функции. Предполагается, что он вызывается непосредственно из обработчика событий.

2 голосов
/ 18 декабря 2010

Два варианта (например, по клику):

из html: onclick="javascript:hoverImg(this)"

или из кода: x.onclick = hoverImg (this теперь в обратном вызове установлено все в порядке, поскольку он "вызывается" для объекта в x позже).

Есть также несколько библиотек JavaScript «поведения» (или даже jQuery - возможно, jQuery.live даже), которые могут помочь вам получить то, что вы хотите.

...