[英]jQuery .click() firing ONLY at load
我在这里搜索了很多地方,但无法找到我的处境,所以去吧。
我试图避免使用html内联onclick,因此这样做是在使用jquery click()这样的
$(document).ready(function(){
$("#start").click(game());
});
当我使用它时,功能game()自动运行,并且仅运行和加载时间。
如果我使用嵌入式onclick,则它仅在单击时有效,并且在每次单击时均有效。 为什么是这样?
编辑。。我发誓我尝试过。。
您正在调用game()
函数并将其结果传递给.click()
。 由于其结果(大概)不是函数,因此您实际上根本没有设置点击处理程序。 您需要传递对该函数的引用,因此请删除括号:
$("#start").click(game);
您正在通过添加括号立即执行game()
。 如果您想在点击时评估game
,则需要
$(document).ready(function(){
$("#start").click(game);
});
您需要将其更改为:
$("#start").click(game);
始终建议使用.on和匿名函数,因为这样可以避免此类混乱。
$(document).ready(function() {
$('#start').on('click', function () {
game();
});
}
);
您正在做的事情类似于
$(document).ready(function() {
$('#start').on('click', function () {
game();
}());
}
);
也许您需要这样定义游戏:
var game = function(e,...)
$("#start").click(game);
请记住,第一个参数是事件对象,该事件对象是通过click函数传递的。
问候。
您可以在html元素中使用jquery函数。
<canvas id="game" onclick="jqueryFunction()"></canvas>
在jqueryFunction()中执行if else语句,以便在游戏运行时触发:fire。
否则,如果游戏没有运行:load游戏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.