Javascript 单击时调用的函数未定义
当我单击按钮时,函数未被调用Javascript 单击时调用的函数未定义,javascript,jquery,Javascript,Jquery,当我单击按钮时,函数未被调用 <script> $(function() { var reset = function () { obj.x = canvas.width / 2; obj.y = canvas.height / 2; }; }); </script> <input type="button" onclick="reset();" /> 为什么?因为javascript处理程序需要在
<script>
$(function() {
var reset = function () {
obj.x = canvas.width / 2;
obj.y = canvas.height / 2;
};
});
</script>
<input type="button" onclick="reset();" />
为什么?因为javascript处理程序需要在全局范围内声明 正如在评论中所说,您的重置函数位于本地范围内,这使得它在设置onclick的全局范围内不可见 这很好,真的,不在全局范围内声明一堆函数是很好的 这里的解决方案是正确附加事件处理程序:
<script>
$(function() {
var reset = function () {
obj.x = canvas.width / 2;
obj.y = canvas.height / 2;
}
document.getElementById('myButton').addEventListener('click', reset);
});
</script>
<input type="button" id=myButton/>
或者,正如您使用jQuery时所看到的:
<script>
$(function() {
var reset = function () {
obj.x = canvas.width / 2;
obj.y = canvas.height / 2;
}
$('#myButton').click(reset);
});
</script>
<input type="button" id=myButton/>
因为函数的范围当然不是全局的,所以你在一个生命周期内将该函数设置为私有的…为什么你的按钮在你的内部?@Tushar但如果我将该函数设置为全局的,我可能不会看到canvasLink唯一的答案。