Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript addEventListener不';行不通_Javascript_Html_Addeventlistener - Fatal编程技术网

Javascript addEventListener不';行不通

Javascript addEventListener不';行不通,javascript,html,addeventlistener,Javascript,Html,Addeventlistener,我对addEventListener有问题。当我点击第三个div标签时,它不会改变背景颜色,警报也不起作用 以下是我的html结构: <!DOCTYPE html> <html> <head> <script type="text/javascript" src="myscript.js"></script> </head> <body> <p>Click the button to dis

我对addEventListener有问题。当我点击第三个div标签时,它不会改变背景颜色,警报也不起作用

以下是我的html结构:

<!DOCTYPE html>
<html>
<head>
  <script type="text/javascript"  src="myscript.js"></script>
</head>
<body>
  <p>Click the button to display an alert box:</p>
  <div>Robert</div>
  <div>Arthur</div>
  <div>Procedure(Third)</div>
  <div>Fourth</div>
  <button onclick="myfunc()">Try it</button>
</body>

单击按钮以显示警报框:

罗伯特 亚瑟 程序(第三) 第四 试试看

下面是javascript文件:

var Ar = ["red", "yellow", "green", "blue"]

function getRandomInt(min, max)
{
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

function myfunc() {
    alert(getRandomInt(0,5));

}

function Group(handler) {
    var R = [];
    for (var I = 0, E = document.getElementsByTagName('div'), L = E.length; I < L; I++) {
        handler && handler.call(E[I]);
        if (!handler)
            R.push(E[I]);
     }
    return R;
 }

 //get third div tags and set a handler
 Group()[2].addEventListener("click", handler, false);

function handler() {
    alert("Test!"); 
    Group()[2].style.backgroundColor = Ar[getRandomInt(0,3)];   
 }
var Ar=[“红色”、“黄色”、“绿色”、“蓝色”]
函数getRandomInt(最小值、最大值)
{
返回Math.floor(Math.random()*(max-min+1))+min;
}
函数myfunc(){
警报(getRandomInt(0,5));
}
功能组(处理程序){
var R=[];
对于(var I=0,E=document.getElementsByTagName('div'),L=E.length;I
您正在尝试在加载元素之前访问它们

把你的脚本放在页面的末尾,它就可以工作了

<!DOCTYPE html>
<html>
<head>

</head>
<body>
  <p>Click the button to display an alert box:</p>
  <div>Robert</div>
  <div>Arthur</div>
  <div>Procedure(Third)</div>
  <div>Fourth</div>
  <button onclick="myfunc()">Try it</button>
</body>
<script type="text/javascript"  src="myscript.js"></script>

单击按钮以显示警报框:

罗伯特 亚瑟 程序(第三) 第四 试试看
您正在尝试在加载元素之前访问它们

把你的脚本放在页面的末尾,它就可以工作了

<!DOCTYPE html>
<html>
<head>

</head>
<body>
  <p>Click the button to display an alert box:</p>
  <div>Robert</div>
  <div>Arthur</div>
  <div>Procedure(Third)</div>
  <div>Fourth</div>
  <button onclick="myfunc()">Try it</button>
</body>
<script type="text/javascript"  src="myscript.js"></script>

单击按钮以显示警报框:

罗伯特 亚瑟 程序(第三) 第四 试试看
像这样修改代码

<body>
    <p>Click the button to display an alert box:</p>
    <div>Robert</div>
    <div>Arthur</div>
    <div>Procedure(Third)</div>
    <div>Fourth</div>
    <button onclick="myfunc()">Try it</button>
    <script type="text/javascript">
        Group()[2].addEventListener("click", handler, false);
    </script>
</body>

单击按钮以显示警报框:

罗伯特 亚瑟 程序(第三) 第四 试试看 Group()[2]。addEventListener(“单击”,处理程序,false);
像这样修改代码

<body>
    <p>Click the button to display an alert box:</p>
    <div>Robert</div>
    <div>Arthur</div>
    <div>Procedure(Third)</div>
    <div>Fourth</div>
    <button onclick="myfunc()">Try it</button>
    <script type="text/javascript">
        Group()[2].addEventListener("click", handler, false);
    </script>
</body>

单击按钮以显示警报框:

罗伯特 亚瑟 程序(第三) 第四 试试看 Group()[2]。addEventListener(“单击”,处理程序,false);
控制台开始。记录
组()的
结果。
您的代码是否符合预期?@Teemu是的,但为什么在我的Chrome和Firefox电脑上它不起作用?我无法理解从
控制台开始。按预期记录
组()的
结果。
你的代码?@Teemu是的,但为什么在我的Chrome和Firefox电脑上它不工作?我不能understand@Robert是的,您可以使用onload,但问题是它将等待所有资源(如图像)加载后发出onload事件。更好的选择是jquery的Document.ready。@Robert是的,您可以使用onload,但问题是它将等待所有资源(如图像)加载后发出onload事件。更好的选择是jquery的Document.ready。