JQuery несколько событий и несколько селекторов

0

Можно ли использовать несколько селекторов и несколько событий в jQuery?

Я хочу комбинировать следующее:

$('#submit-modal').click(function() {
$('#modal-form').submit(function() {

В нечто подобное (или подобное):

$('#submit-modal, #modal-form').on('click', 'submit', function() {

Я пробовал это, но он не работает.

Обновление (больше того, что я хочу выполнить):

$('#submit-modal').click().$('#modal-form').submit(function() {

Мне нужен только click() прикрепленный к #submit-modal и submit() присоединенный к #modal-form но если он инициирован, он выполняет ту же функцию.

Теги:

3 ответа

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

Решение здесь заключается в том, чтобы инициировать отправку формы из события click, чтобы код, связанный с представлением формы, присутствовал только в одном ладони.

$('#submit-modal').click(function() {
    $('#modal-form').submit();// $('#modal-form')[0].submit();
});
$('#modal-form').submit(function() {
    //do the submit code here
});
  • 0
    Хороший ответ. Это будет делать именно то, что мне нужно.
1

Вы можете сделать это:

$("#submit-modal, #modal-form").on("click submit", function() {..});

Это означало, что анонимная функция выполняется при нажатии или отправке в # submit-modal или # modal-form

  • 0
    Спасибо, это работает, но моя логика была испорчена, потому что теперь, когда я щелкаю в любом месте формы, она отправляет. Есть ли способ предотвратить это?
  • 1
    Да, отделяя вызывающую функцию от клика и отправки. Когда вы прикрепляете событие click к элементу DOM, оно запускается, когда вы щелкаете в любом месте этого элемента. Отвечая на ваш новый вопрос об обновлении, вы выглядите примерно так: var myfunction = function () {...} $ ("# submit-modal"). On ("click", myfunction); $ ("# modal-form"). on ("submit", myfunction);
0

Да, вы могли бы лучше сохранить каждое событие с каждым селектором, если только они не активируются одним и тем же событием.

Ещё вопросы

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