为什么在这个简单的jsfiddle演示中没有点击事件触发?

问题描述 投票:0回答:2

我正在尝试在jsfiddle上创建一个小演示,但当我点击切换按钮时,click事件没有触发,它说myclick is not defined

我看过其他提到No wrap解决方案的答案,但我现在没有在jsfiddle中看到这样的配置选项。

jsfiddle:https://jsfiddle.net/5j9qgbxa/4/

javascript html css jsfiddle
2个回答
1
投票

似乎带有onload类型的javascript将在jsfiddle的开头创建javascript,如下所示:

window.onload=function(){
  function myclick(){
   alert("myclick");
  }
}


<YourHTML>

在这种情况下,他不会识别myclick(),因为这是在HTML中稍后创建的,并且不会被onload触发。你可以在这个jsfiddle中看到你可以做些什么来避免这种情况:https://jsfiddle.net/cqL9t8mh/1/

我在这里做的是,删除按钮中的onclick =“myclick”并将其替换为ID'btnToggle'。然后在javascript部分中,您可以添加类型的addEventListener,单击ID“btnToggle”以触发myclick功能。

您在上一个答案的命令中询问的是:enter image description here

这将使你的代码布局如下:

<YourHTML>
function myclick(){
   alert("myclick");
  }

在这种情况下,您的HTML首先在您的函数之前创建,并且不再处于onload中,因此每次单击按钮时都会触发它。


2
投票

将载荷类型更改为No wrap -bottom of the <body>

这是Demo

© www.soinside.com 2019 - 2024. All rights reserved.