Второй вызов AJAX для одного элемента div не работает

#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: Я не знаю, я не опускал этот. Не принимайте это на свой счет, люди голосуют по разным причинам, не все из которых я бы счел правильными причинами.