javascript - 如何使用 Javascript(不是 html)用 onclick 事件声明事件对象?

标签 javascript events function reference onclick

这是我的代码:

function testimage() {
  var image;

  image = new Image();

  with (image) {
    id = "page1";
    border = 0;
    name = "IllustGIF";
    useMap = "#MAP1";
    src = "sample.gif" + "?d=" + new Date();

    // The event argument here is invalid; it's to show what is the desired result.
    onclick = function() { RecordMouseClick(event, this.id); };
  }

  // attached to body tag
  document.getElementById("body_ID").appendChild(image);
}

function RecordMouseClick(event, id) {
  alert("id: " + id + ", and event object should contain mouse x- and y- coordinates clicked");
}

我需要在 JavaScript 中定义 onclick 事件,而不是 HTML。现在在 HTML 中,这很容易——只需将事件作为参数传递给函数,瞧,JavaScript 中的事件对象但是从头开始,全部在 JavaScript 中,没有 HTML,对我来说是一个挑战。当引用函数被调用时,它应该从 onclick 事件中记录元素 id 和鼠标点击 x 和 y 坐标。

如何将事件传递给 onclick,以便事件对象在运行时有效?

谢谢。

最佳答案

这是一个 sample fiddle .

image.onclick = function(e) { 
    e = e || window.event;
    RecordMouseClick(e, image.id); 
};

关于javascript - 如何使用 Javascript(不是 html)用 onclick 事件声明事件对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689442/

相关文章:

php - Jquery 无法将变量传递给 php

javascript - 无法删除 Javascript 中 event.data 附加的 jQuery 事件监听器

c# - Moq - mock.Raise 应该在没有设置的情况下在测试单元中引发事件

javascript - 从函数返回 boolean 值

如果值已动态更改,则检查元素不透明度的 Jquery 函数将失败

javascript - 我可以通过单击事件触发多个功能吗?

javascript - onunload 被触发了多少次?

c# - 一些第三方工具的 Javascript 和 CSS 文件压缩技术

javascript - 是否有可能在 css 中使固定主体不滚动?

c# - 在 MVC 中处理来自共享控件的事件