Я знаю, что есть много сообщений о том, что preventDefault() не работает, но я пошел к ним и ничего не получил.
Все, что я делаю, это ловить событие click, а затем добавлять html из ответа, но preventDefault() не останавливает загрузку страницы, и я смущен почему.
Вот мой HTML:
<div class="slide_pane">
<div class="profile_content"></div>
<div class="account_bottom_bar">
<ul class="bottom_bar_list">
<a href="/profiles/load" class="sidebar_link">
<li>
<p>Content</p>
</li>
</a>
</ul>
</div>
И вот мой JS:
$(document).scroll(function() {
ajaxView();
});
var ajaxView = function() {
$('.sidebar_link').click(function(e) {
e.preventDefault();
$.ajax ({
type: 'GET',
url: $(this).attr("href")
}).done(function(resp) {
$('.profile_content').append(resp);
});
});
};
Но когда я ударил это действие, он просто загружает HTML из ответа на новый экран.
Есть идеи?? Благодарю!
Ничего не происходит из-за отсутствия sidebar_link в вашем HTML.
Пример использования event.preventDefault():
$(document).ready(function() {
$(".sidebar_link").click(function(event) {
event.preventDefault();
$(this).css("color", "red");
});
});
Ниже приведен пример использования event.preventDefault() для ссылок: http://jsfiddle.net/LUKVT/
.sidebar_link
в вашем примере? Похоже, вы добавляете новый обработчик событий в этот элемент всякий раз, когда пользователи прокручивают страницу, что очень плохо.