簡體   English   中英

jQuery .click()僅在加載時觸發

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM