当前位置: 首页 > 面试题库 >

将onclick事件添加到JavaScript中新添加的元素

孙项禹
2023-03-14
问题内容

我一直试图将onclick事件添加到使用JavaScript添加的新元素中。

问题是当我检查document.body.innerHTML时,我实际上可以看到onclick = alert(’blah’)已添加到新元素中。

但是,当我单击该元素时,我看不到警报框正在运行。实际上,任何与JavaScript相关的功能都无法正常工作。

这是我用来添加新元素的方法:

function add_img() { 
  var elemm = document.createElement('rvml:image'); 
  elemm.src = 'blah.png';
  elemm.className = 'rvml';
  elemm.onclick = "alert('blah')";
  document.body.appendChild(elemm);
  elemm.id = "gogo";
  elemm.style.position='absolute';
  elemm.style.width=55;
  elemm.style.height=55;
  elemm.style.top=200;
  elemm.style.left=300;
  elemm.style.rotation=200; 
}

这是我所谓的函​​数:

<button onclick=add_img()>add image</button>

现在,图像可以完美地在浏览器中绘制。但是,当我单击图像时,不会收到该警报。


问题答案:

.onclick应该设置为函数而不是字符串。尝试

elemm.onclick = function() { alert('blah'); };

代替。



 类似资料:
  • 问题内容: 我在SVG教程中找到了此示例,该教程说明了如何将事件处理程序用于SVG元素。看起来像下面的代码: 但是,这似乎不起作用。当我单击该元素时,没有任何反应。 也许重要的是要提到我正在使用PHP从PHP脚本内部显示SVG的事实。另外,请注意,使用AJAX和将PHP脚本生成的内容带入页面。 这可能与它有关吗?非常感谢您的帮助。 问题答案: 似乎所有JavaScript都必须包含在SVG中才能运

  • 问题内容: 我试图通过Javascript向表行添加onclick事件。 这在Firefox中可以正常工作,但是在Internet Explorer(IE8)中,我无法访问表格单元。我认为这与onclick函数中的“ this”被标识为“ Window”而不是“ Table”(或类似的东西)有关。 如果我可以访问当前行,则可以在onclick函数中执行,因为我找不到这样做的方法。有什么建议么? 问

  • 问题内容: 我正在尝试将onClick事件添加到现有的svg。现在我有这个: 这 有点 起作用,但不完全是…当我单击该组时会触发该事件,但是可单击的“区域”与我想要可单击的组不同(在我看来,这是完全随机的)。 有没有更好的方法来向元素添加事件(使用React?)? 问题答案: 甲元件是一个空的容器; 它本身不能触发事件。 如果运行此示例,将会看到可以通过单击元素的子级来触发事件,但是如果单击它们之

  • 问题内容: 我想将onclick事件绑定到我使用jQuery动态插入的元素 但是它从不运行绑定函数。如果您能指出此示例为何不起作用以及如何使其正常运行,我将不胜感激: 编辑:我编辑了该示例以包含方法插入到其中的两个元素。在这种情况下,将永远不会执行该调用。 问题答案: 第一个问题是,当您在具有多个元素的jQuery集合上调用append时,会为每个元素创建要添加的元素的克隆,因此丢失了附加的事件观

  • 问题内容: 我是一位经验丰富的Java程序员,但是大约十年来第一次接触JavaScript / HTML5。我完全困惑于应该是有史以来最简单的事情。 作为示例,我只想绘制一些东西并为其添加事件处理程序。我确定我在做一些愚蠢的事情,但是我搜索了所有内容,没有任何建议(例如,此问题的答案: 添加onclick属性以使用JavaScript输入。我正在使用Firefox10.0.1。我的代码如下。您会看

  • 问题内容: 如何将事件添加到元素? 我可以用吗: 为了这? 问题答案: 不,你不能。最简单的方法是将函数调用直接放在元素之后 例: 或者-甚至更好-就在: …因此它不会阻止以下内容的加载。