вызовы jquery ajax вызывают обновление страницы - PullRequest
0 голосов
/ 25 июня 2011

У меня на странице HTML есть кнопка, которая не является частью какой-либо формы.

<input type='button' id='submitter' value='add'/>

У меня есть обработчик кликов:

$('#submitter').click(function(e) {
    e.preventDefault();
    e.stopPropagation();
    var args={}
    $.get('notexists.php', args, function() {alert('what?');}, 'json')
         .error(function(){ alert('error'); });

    return false;
}

Теперь notexists.php не существует, поэтому щелчок должен предупредить error. Но по какой-то причине страница обновляется, когда я нажимаю кнопку!

Некоторые эксперименты, которые я пытался выявить:

  1. удалил все из обработчика (нет возврата false, нет предотвращения по умолчанию, нет stop prop, нет jquery post call - ничего) - страница не обновлялась при нажатии, и не должна. кнопка не является кнопкой отправки и не принадлежит ни к какой форме.
  2. удален вызов $ .post - без обновления
  3. включил функцию «разбить при ошибке» в firebug и попытался щелкнуть - снова обновился. так что ошибки нет.
  4. изменил URL поста на что-то, что существует и работает - все еще обновляет
  5. добавило «alert» после вызова $ .post - оно не вызывалось. Похоже, что выполнение прерывается на $ .post, но ошибки нет (эксперимент 3).
  6. изменил ввод на "div" с тем же идентификатором. Те же результаты - страница обновляется.

Кто-нибудь может помочь?

PS: я использую $ .post во МНОГИХ других частях этого приложения, и оно работает везде, как и ожидалось.

Ответы [ 2 ]

1 голос
/ 25 июня 2011

Я считаю, что ваш селектор не выбирает кнопку, поэтому обработчик событий не применяется.

Проверьте ваш селектор, выполнив что-то вроде:

 $("#submitter").val('Test');
1 голос
/ 25 июня 2011

Вы проверили $('#submitter').length, когда пытаетесь связать событие?Может быть, у вас есть дубликаты в дом?Работал ли ваш скрипт перед закрывающим тегом body или внутри блока, готового для jquery doc?

Размещение более полного примера кода поможет устранить вопросы, которые я задаю.

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