请教 JS 和 JQuery 的问题,按钮点击时间如何关联起来的

2021-09-04 11:24:19 +08:00
 Derek964

我的代码如下: '''======================================

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Title</title> </head>
<script>
    //绑定‘单击事件’的 jQuery
    $('#all_move1').click(function(){
    alert('AA');
    })

    //绑定‘单击事件’的 jQuery
    $('#all_move2').bind('click',function(){
    alert('BB');
    })

    //绑定‘单击事件’的 javascript
    document.getElementById('all_move1').onclick=function(){
        alert('CC');
    }

    //函数式
    function danji(){
        alert('DD');
    }

</script>
<body> <button id="all_move1" >按钮 1</button>

<button id="all_move2" onclick="danji()" >点击按钮 2</button> </body> </html>

'''=============================

这里为什么发现只有“点击按钮 2”,点击了之后会有 alert 。 只有函数式的方法可以生效, 为什么前面三种方法不行呢? 我用的 chrome 浏览器

1796 次点击
所在节点    JavaScript
6 条回复
Building
2021-09-04 11:30:15 +08:00
因为你把 script 放在了 body 前面。
kop1989
2021-09-04 11:33:28 +08:00
绑的太早了。
js 执行绑定的时候,真正的 dom 还没有出现。
所以你这个点击事件相当于绑了个寂寞。

要么将绑定逻辑放在 ready 事件的回调中,要么使用 html 的 onclick 声明。
kop1989
2021-09-04 11:36:59 +08:00
btw 你并没有引用 Jquery 的库,所以第一行的$就已经报错了。
FragmentLs
2021-09-04 11:37:20 +08:00
1 & 2: 因为你没引入 jquery......
3: 你的 js 没 defer
Rache1
2021-09-04 11:41:21 +08:00
你这不只是给 2 绑定了一个事件吗,而且你这个还是 DOM 的前面绑定的,JS 执行的时候都没有这个元素,实际上都是没绑上


打印 1 还是 2,取决于 JS 片段放的位置。

http://jsrun.net/gZTKp/edit
loading
2021-10-23 17:13:20 +08:00
用了 jQuery ,不知道 $().ready(). ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/799810

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX