[英]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.