У меня есть форма для входа в систему, в которой есть две ссылки: Add member
и Reset password
. Я также использовал jQuery Ajax для обновления соответствующих div. Я работаю над Google App Engine и Python. Коды следующим образом:jQuery: один клик вызывает несколько событий
base.html:
...
<div id="loginDiv">{% include "login.html" %}</div>
...
login.html:
<a href="/login?arg1=resetPassword" class="resetPassword">Reset Password</a>
<a href="/addMember" class="addMember">Add member</a>
$(document).ready(function() {
// Add member
$('body').on('click', 'a.addMember', function() {
var url = $(this).attr('href');
$('#content').load(url);
return false;
});
// Reset password
$('body').on('click', 'a.resetPassword', function() {
var url = $(this).attr('href');
$('#loginDiv').load(url);
return false;
});
});
Проблема: когда я нажимаю на одну из кнопок, будет срабатывать несколько событий. Проблема возникает из-за неправильного использования jQuery's $('body')
?
Почему бы просто не использовать '$ (" a.addMember "). Click (...)' и '$ (" a.resetPassword "). Click (...)'? –
Это были именно то, что я использовал раньше. Однако иногда Ajax не обновлял назначенный div; вместо этого он обновляется до целой страницы (см. http://stackoverflow.com/questions/14452952/jquery-ajax-insert-to-div-sometimes-fails). Поэтому я принял предложение Сэмюэля. Я до сих пор не знаю, почему он не работает. –
Возможно, вам лучше загружать только часть возвращаемого содержимого, например. '$ ('# content'). load (url +" body ");' так что вы не ставите '' и так далее в ваш placeholder. –