У меня на странице 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
. Но по какой-то причине страница обновляется, когда я нажимаю кнопку!
Некоторые эксперименты, которые я пытался выявить:
- удалил все из обработчика (нет возврата false, нет предотвращения по умолчанию, нет stop prop, нет jquery post call - ничего) - страница не обновлялась при нажатии, и не должна. кнопка не является кнопкой отправки и не принадлежит ни к какой форме.
- удален вызов $ .post - без обновления
- включил функцию «разбить при ошибке» в firebug и попытался щелкнуть - снова обновился. так что ошибки нет.
- изменил URL поста на что-то, что существует и работает - все еще обновляет
- добавило «alert» после вызова $ .post - оно не вызывалось. Похоже, что выполнение прерывается на $ .post, но ошибки нет (эксперимент 3).
- изменил ввод на "div" с тем же идентификатором. Те же результаты - страница обновляется.
Кто-нибудь может помочь?
PS: я использую $ .post во МНОГИХ других частях этого приложения, и оно работает везде, как и ожидалось.