Подписка нескольких обработчиков на события DOM с помощью jQuery - PullRequest
0 голосов
/ 12 апреля 2011

Я пытаюсь подписать события на класс css.У меня есть два обработчика, определенные следующим образом:

$(document).ready(function() {
    $('.refresh-cart').click(
        function(e) {
            alert('refreshing');
        });

    $('form.ajax').submit(
        function(e) {
            e.preventDefault();
            $.post(
                this.action,
                $(this).serialize(),
                function(data, textStatus, jqXHR) { alert('post'); },
                'text');
        }
    );
});

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

Этот код работает правильно, предупреждая «post» и отправляяAJAX-запрос.

 <form action="page.html" method="post" class="ajax">
     <input type="text" name="Sample" value="SampleValue" />
     <input type="submit" />
 </form>

Этот код работает правильно, предупреждая об «обновлении»

  <div class="refresh-cart">Refresh Widget</div>

Однако, когда они перекрываются (как в следующем примере), только «обновить-срабатывает подписчик cart.

 <form action="page.html" method="post" class="ajax">
     <input type="text" name="Sample" value="SampleValue" />
     <input type="submit" class="refresh-cart" />
 </form>

Что я делаю не так и как заставить оба обработчика срабатывать?

Ответы [ 3 ]

1 голос
/ 12 апреля 2011

Это прекрасно работает для меня ..

Тем не менее, вам необходимо закрыть первое окно предупреждения, прежде чем появится второе.http://jsfiddle.net/gaby/W3zC4/

0 голосов
/ 12 апреля 2011

У меня тоже отлично работает. Я думаю, вы также должны рассмотреть плагин формы jquery здесь для отправки ajax и изменения типа ввода с отправки на кнопку

0 голосов
/ 12 апреля 2011

Вы пытались отправить форму из обработчика кликов?

$(document).ready(function() {
    $('form.ajax').submit(
        function(e) {
            e.preventDefault();
            $.post(
                this.action,
                $(this).serialize(),
                function(data, textStatus, jqXHR) { alert('post'); },
                'text'
            );
    });

    $('.refresh-cart').click(
        function(e) {
            alert('refreshing');
            $('form.ajax').submit();
            return false;
     });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...