javascript - 为什么这个原型(prototype)代码会这样工作?

标签 javascript prototypejs

这是我的 html:

(注意:我没有在 a 上使用背景图像,只是为了简单地向其他人展示这是如何工作的)

<div class="foo">
    <ul>
        <li><a href="#" class="bar"><img src="bar.gif" /></a></li>
        <li><a href="#" class="baz"><img src="baz.gif" /></a></li>
    </ul>
</div>

还有我的 JavaScript:

<script type="text/javascript">
    Event.observe(window, 'load', function() {
        $$('.foo a').each(function(a) {
            alert(a); // this is the anchor
            a.observe('click', fooClick);
    });

    function fooClick(event) {
        alert(event.element()); // this is the img
    }
</script>

为什么 fooClick 中的元素是图像而不是 anchor ?我应该如何做到这一点才能使用图像。

最佳答案

当单击处理程序绑定(bind)到 anchor 时,会在图像上引发单击事件。该事件在 DOM 中冒泡,并调用 anchor 上的事件处理程序。 event.element()是引发事件的元素

关于javascript - 为什么这个原型(prototype)代码会这样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1800061/

相关文章:

jquery - 我应该从prototype转到jquery吗?

javascript - 将 UTC 时刻转换为本地日期时间

prototypejs - Javascript Prototype 使用掩码按名称选择元素

javascript - 我如何不引人注意地禁用 Javascript 和 Prototype 的提交按钮?

java - 如何将 pojo 对象作为参数传递给来自 prototypejs 客户端的 REST Web 服务

Javascript 继承 - 询问专家对以下代码的意见

javascript - 如何将字符串发送到 Gulp 任务中?

javascript - Blockchain Tierion API - 使用 Node.js 实时文件上传

javascript - jquery中switch和if中为什么推荐使用else if

javascript - 通过查找输入背景颜色更改 div 颜色