gpt4 book ai didi

javascript - 处理 jQuery 的鼠标按下

转载 作者:行者123 更新时间:2023-11-28 01:19:17 25 4
gpt4 key购买 nike

这是SO ,我可以让鼠标按下处理程序完美工作。但现在我想将这些函数分离到一个名为 test.js 的文件中。

在 test.js 中,我有:

function handleMouseDown(e) {
console.log('handleMouseDown');
}

function boardActivateMouse() {
console.log('activateMouse ');
// $(canvas).mousedown(function(e){handleMouseDown(e);});
// $('#canvas').mousedown(function(e){handleMouseDown(e);})
$("#canvas").mousedown(function(e){handleMouseDown(e);});;
}

board.prototype.activateMouse = boardActivateMouse;

在调用 html 文件中,我有这个:

<style>
canvas{border:1px solid red;}
</style>

<body>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script src="test.js"></script>
<script type="text/javascript">
window.onload = function()
{
canvas = document.getElementById("canvas");
context = canvas.getContext("2d");
console.log('window on load b4 mboard context ');
mBoard = new board(context);
console.log('window on load after mboard context ');
mBoard.activateMouse();

};
</script>

<canvas id="canvas" width=700 height=700></canvas>

</body>

在控制台中,我可以看到“activateMouse”消息。但是 handleMouseDown 函数根本没有被调用?

有什么建议吗?

最佳答案

因为您需要使用 on JQuery 方法来捕获动态创建的 DOM 元素中的事件(在您的情况下初始化时不存在):

在您的文件中,粘贴以下代码。它声明为匿名函数 self-invokated页面何时加载。显然,您需要先加载 JQuery :

(function($){
$(document).on('mousedown',"#canvas",function(e){
handleMouseDown(e);
});
})(JQuery);

关于javascript - 处理 jQuery 的鼠标按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23431892/

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