jQuery .click()仅在加载时触发

时间:2014-03-12 20:22:27

标签: javascript jquery html

我在这里搜索了很多地方,但我找不到自己的情况,所以这里就去了。

我试图避免使用html inline onclick,所以这样做我正在使用jquery click()这样

$(document).ready(function(){
    $("#start").click(game());
});

当我使用它时,函数游戏()自动运行,只运行和加载时间。

如果我使用内联onclick,它只有在我点击时才有效,并且每次点击都会有效。这是为什么?

编辑..我发誓我试过了..哦,好吧,它有用!!!

6 个答案:

答案 0 :(得分:6)

您正在调用game()函数并将其结果传递给.click()。由于其结果(可能)不是函数,因此您实际上根本没有设置点击处理程序。您需要传递对该函数的引用,因此请删除括号:

$("#start").click(game);

答案 1 :(得分:3)

您正在通过添加括号立即执行game()。如果您希望在点击时评估game,则需要

$(document).ready(function(){
    $("#start").click(game);
});

答案 2 :(得分:3)

您需要将其更改为:

$("#start").click(game);

答案 3 :(得分:1)

始终建议使用 .on &一个匿名函数,因为它会使图像中出现这样的混淆;

$(document).ready(function() {
        $('#start').on('click', function () {
            game();
        });
    }
);

您正在做的事情与

类似
$(document).ready(function() {
        $('#start').on('click', function () {
            game();
        }());
    }
);

答案 4 :(得分:0)

也许你需要这样定义游戏:

var game = function(e,...)

$("#start").click(game);

请记住第一个参数是从click函数传递的事件对象。

问候。

答案 5 :(得分:0)

您可以在html元素中使用jquery函数。

<canvas id="game" onclick="jqueryFunction()"></canvas>

在jqueryFunction()中创建一个if else语句 所以,如果游戏正在运行:火。

否则如果游戏没有运行:加载游戏。