为什么在这个简单的jsfiddle演示中不触发click事件?

时间:2019-02-25 08:52:00

标签: javascript html css jsfiddle

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

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

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

2 个答案:

答案 0 :(得分:2)

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

这里是Demo

答案 1 :(得分: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部分中,您可以添加类型为ID的“ btnToggle”点击的addEventListener来触发您的myclick函数。

此外,您在上一个答案的命令中要求的内容如下: enter image description here

这将使您的代码布局像这样:

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

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