javascript - 如何知道 JavaScript 中哪个元素调用了函数?

标签 javascript function element onmouseover onmouseout

我正在制作这个页面,其中包含许多图像链接,当鼠标悬停在它们上方时,这些链接会发生变化。我这里有一个更改图像的功能:

    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");
        }
    }

但是,我必须为每个元素的每个 onmouseover 和 onmouseout 事件提供“this”作为函数的参数。有没有办法只知道什么元素称为函数?函数复制不是一种选择,因为正如我所说,每页可能有数百个这样的小图像,并且无论如何这些页面最终都会从数据库数据生成。每次添加“this”似乎非常多余......

最佳答案

两个选项(以 onclick 为例):

来自 html:onclick="javascript:hoverImg(this)"

或来自代码:x.onclick = hideImg(this 现在可以在回调中设置,因为稍后会“调用”x 中的对象)。

还有一些“行为”JavaScript 库(甚至 jQuery - 也许 jQuery.live 甚至)可以帮助您获得您想要的东西。

关于javascript - 如何知道 JavaScript 中哪个元素调用了函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476054/

相关文章:

javascript - Textfield在Ext JS中无效也显示有效

python - 将字符串中的字符与其索引号相乘

C++ 如何将一个函数的引用传递给另一个函数?

javascript - 在任何元素悬停时更改页面背景(不是元素 BG)。

javascript - 如何使用 javascript 从 gmail api 下载附件?

javascript - 将垂直线添加到 d3js 条形图

javascript - 按钮点击jquery后显示div

c++ - 如何将返回函数中的值作为另一个函数的参数传递,在其中使用它然后适本地调用它 C++?

java - 如何使用 css 样式将颜色应用于指定 offsetwidth 的线元素?

angularjs - 当 angular 未在初始页面上加载时,如何使用 Protractor 的元素资源管理器选择、单击元素