#jquery #ajax
#jquery #ajax
Вопрос:
У меня есть элемент div #profInfo и две кнопки #profEdit и #profEditDone. Первый вызов AJAX работает, второй — нет. Кажется, не могу точно определить проблему.
jQuery(
function() {
$("#profEdit").click(function() {
$("#profInfo").load("profile_edit_info.php");
});
},
function() {
$("#profEditDone").click(function() {
$("#profInfo").load("profile_info.php");
});
}
);
Комментарии:
1. как это не работает? там нет файла profile_info.php ? propInfo не обновляется?
2. $(обработчик,handler) недопустимый синтаксис. Событие псевдоподготовки принимает только один аргумент
3. @florin Там есть profile_info.php . @A каков правильный синтаксис? Итак, используйте document.ready?
4. @пользователь3786546, например:
$(function(){$("#profEdit").click(...); $("#profEditDone").click(...);});
Ответ №1:
Функция jQuery выполняет одну функцию для события document ready, а не две:
jQuery(
function() {
$("#profEdit").click(function() {
$("#profInfo").load("profile_edit_info.php");
});
$("#profEditDone").click(function() {
$("#profInfo").load("profile_info.php");
});
}
);
Скорее всего, он просто игнорировал вторую функцию, потому что он не ожидает второго параметра функции после выполнения первого. Обратите также внимание, что если эти элементы #profEdit
и #profEditDone
каким-либо образом будут заменены в результате этих операций AJAX, то ваши привязки кликов будут потеряны. Если это также происходит, вы захотите использовать .on()
вместо этого и привязать к общему родительскому элементу:
jQuery(
function() {
$(document).on("click", "#profEdit", function() {
$("#profInfo").load("profile_edit_info.php");
});
$(document).on("click", "#profEditDone", function() {
$("#profInfo").load("profile_info.php");
});
}
);
Комментарии:
1. Спасибо. Просто любопытно, почему мои вопросы продолжают отклоняться?
2. @user3786546: Я не знаю, я не опускал этот. Не принимайте это на свой счет, люди голосуют по разным причинам, не все из которых я бы счел правильными причинами.