在下面的代码中为什么on事件处理程序没有启动?

时间:2017-02-07 16:40:51

标签: javascript jquery

为什么我没有得到控制台输出,是否存在一些概念错误 HTML页面是

!DOCTYPE html>
<html>
<head>
    <title>prac 1</title>
    <script type="text/javascript" src="jquery-3.1.1.min (1).js"></script>
<script type="text/javascript" src="script2.js"></script>
</head>

<body>

<input type="text" id="just">
<input type="submit" id="submit">

<p></p><p></p>
<div id="div1"></div>

</body>
</html>

script2.js也是

$(document).on('ready',check());

function check(){
  $('#submit').on('click',function(){

    console.log("hi");
  })



}

感谢sdcsc = dsfsdfvdvd(只是为了消除细节错误)

2 个答案:

答案 0 :(得分:5)

由于check() 在元素存在之前立即调用 check,因此找不到它们,并且处理程序未被连接。

你应该将函数而不是它的返回值传递给ready

$(document).on("ready", check);
// No () --------------------^

答案 1 :(得分:0)

最佳做法是在<body>标记的底部加载JS文件。

因此,您的HTML文件应如下所示:

<!DOCTYPE html>
<html>
<head>
    <title>prac 1</title>
</head>

<body>

<input type="text" id="just">
<input type="submit" id="submit">

<p></p><p></p>
<div id="div1"></div>

<script type="text/javascript" src="jquery-3.1.1.min (1).js"></script>
<script type="text/javascript" src="script2.js"></script>
</body>
</html>