jQuery .click () стреляет ТОЛЬКО при загрузке

0

Я искал здесь множество мест, и я не смог найти свою ситуацию, так что здесь.

Я пытаюсь избежать использования html inline onclick, поэтому при этом я использую jquery click() так же

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

Когда я использую это, функция game() запускается автоматически и запускается только и время загрузки.

Если я использую inline onclick, он работает только тогда, когда я нажимаю, и он работает каждый раз, когда я нажимаю. Почему это?

Редактировать.. Клянусь, я пробовал это... ну, это сработало !!!

Теги:

6 ответов

6
Лучший ответ

Вы вызываете функцию game() и передаете ее результат в .click(). Поскольку его результат (предположительно) не является функцией, на которой вы фактически не настроили обработчик кликов. Вам нужно передать ссылку на функцию, поэтому удалите круглые скобки:

$("#start").click(game);
  • 0
    Я постараюсь принять этот ответ завтра. Хотя пока я не могу этого сделать. Спасибо!!
3

Вы немедленно выполняете game(), добавляя скобки. Если вы хотите, чтобы game оценивалась по клику, вам нужно

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

Вам нужно изменить его на это:

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

Всегда более целесообразно использовать .on & анонимную функцию, так как она принимает путаницы, подобные этим из изображения;

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

То, что вы делаете, будет похоже на

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

Вы можете использовать функцию jquery в элементе html.

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

В jqueryFunction() сделайте оператор if else, поэтому, если игра запущена: fire.

иначе если игра не работает: загрузите игру.

  • 0
    Да, вопрос уже заявил, что это работает.
  • 0
    Я пытался этого избежать, хотя на самом деле у меня нет веской причины избегать этого, о чем я знаю, а просто пробую разные вещи.
Показать ещё 1 комментарий
0

Возможно, вам нужно определить игру таким образом:

var game = function(e,...)

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

И помните, что первым параметром является объект события, переданный из функции щелчка.

С уважением.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню