gpt4 book ai didi

javascript - 为什么不触发 jQuery 事件?

转载 作者:行者123 更新时间:2023-11-29 18:31:29 25 4
gpt4 key购买 nike

我认为我做错了什么,但事件仅在选择器为 document 时有效。否则,不会发生。

HTML

<html>                                                                  
<head>
<!-- the libraries references here -->
</head>
<body>
<div id="canvas"></div>
</body>
</html>

Javascript

/* Click on canvas */
canvasClickEvent = function(e){
if(e.shiftKey){
selectedElement = $(this).attr("id");
}
}

/* Events */
$(document).ready(documentLoadEvent);
$(document).click(canvasClickEvent); //this works, but is wrong
//$("#canvas").click(canvasClickEvent); --this is what I want, but not works
$(document).dblclick(canvasDblClickEvent);

如果我用 $('#canvas').click(canvasClickEvent); 这样的 div 名称替换文档,则不会调用点击事件。它仅在选择器为 document 时有效,但传递给函数的元素始终具有 undefined 之类的属性。

可能会发生什么?

最佳答案

发生的事情是事件试图在 DOM 元素存在之前绑定(bind)事件。

如果将事件包装在 ready() 方法中,则可以保证在事件尝试绑定(bind)之前该域已存在。

$(document).ready( function ()  {
$("#canvas").click(canvasClickEvent);
}

ready() 方法依赖于浏览器的 DOMContentLoaded 事件,这基本上意味着 DOM 已完全加载到浏览器中,但并不一定意味着页面上的所有媒体都已完全加载。加载所有媒体后,将触发 onLoad 浏览器事件。

关于javascript - 为什么不触发 jQuery 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7694737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com