jQuery .click метод не выполняет функцию обработчика событий - PullRequest
1 голос
/ 19 апреля 2020

У меня есть HTML, который выглядит следующим образом:

<form>
 //...form content...
 <input class="submit-button" value="Submit Review" type="submit">
</form>

А потом мой javascript:

function submitReview(event) {
 event.preventDefault()
 //...does a thing...
}

А затем мой обработчик событий:

$('.submit-button').click(submitReview)

в таком порядке. Когда я запускаю отладчик, происходит то, что мое событие регистрируется обработчиком по щелчку моего подтверждения, но тогда функция внутри метода .click вообще не выполняется. Я попытался использовать анонимную функцию вместо этого в моем событии щелчка, но все еще не играли в кости. Я сбит с толку, потому что чувствую, что я делал то же самое в других проектах, поэтому, возможно, моя проблема выходит за рамки моего кода, но я просто не представляю, что еще это будет.

Есть идеи?

РЕДАКТИРОВАТЬ:

Оказывается, я был неправ, и он вообще не регистрирует нажатие кнопки, он только обновлял страницу, потому что ее тип был "отправить" ». Похоже, что-то не так с моим селектором. Это может быть связано с тем, как моя кнопка вложена в документ большего размера, что может выходить за рамки моего первоначального вопроса, но спасибо за совет!

1 Ответ

0 голосов
/ 20 апреля 2020

Ответ был намного более сложным, чем этот, поскольку мой HTML был объявлен динамически, и поэтому обработчик событий не смог присоединиться к элементам, поскольку их не было, когда вызывался .click.

Все, что мне нужно было сделать, это изменить $('.submit-button').click(submitReview) на $('<static parent element>').on('click', '.submit-button', submitReview), чтобы обработчик событий можно было связать при нажатии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...