Переключатель jQuery возвращает себя в исходное состояние - PullRequest
0 голосов
/ 28 сентября 2011

У меня есть два бита кода, почти одинаковые

<div class="favButtonHolder" alt="{% url inturl int.id %}">
        {% if int in user.get_profile.favorites.all %} 
            <div class="favorite favButton" style="display:none;">Favorite</div>
            <div class="favorited favButton">Favorite</div>
        {% else %}
            <div class="favorite favButton">Favorite</div>
            <div class="favorited favButton" style="display:none;">Favorite</div>
        {% endif %}
    </div>

и

<div class="favButtonHolder" alt="{% url inturl result.object.id %}">
    {% if result.object in user.get_profile.favorites.all %} 
        <div class="favorite favButton" style="display:none;">Favorite</div>
        <div class="favorited favButton">Favorite</div>
    {% else %}
        <div class="favorite favButton">Favorite</div>
        <div class="favorited favButton" style="display:none;">Favorite</div>
    {% endif %}
</div>

И некоторые соответствующие jQuery: $ (document) .ready (function () {

    // Selecting Favorites
    $('.favButtonHolder').click(function() {
        var container = $(this);

        $.get( container.attr('alt'), {'fav': 1}, function() {
            container.find('.favButton').toggle();
        });

    });
});

По какой-то причине, когда я переключаюсь на первый бит кода, он работает просто отлично. Он прячет правильный div и отображает правильный div.

По какой-то неизвестной причине, когда япри переключении второго бита кода он переворачивается всего на несколько миллисекунд, а затем переворачивается назад (скрытый становится блоком, а затем скрывается почти сразу, и наоборот). Он выполняет GET, но не переключается должным образом.

Почему это случилось?

1 Ответ

1 голос
/ 28 сентября 2011

Создание ответа из моего комментария


Проверьте файлы JavaScript, чтобы убедиться, что вы не продублировали код, который вы опубликовали. Если он присутствует в двух местах, когда сработает событие .click(), будут запущены два запроса GET и два .toggle(), что приведет к взаимному исключению последнего. Проверьте файлы JS на наличие дублированного кода (как у вас есть) и удалите его, чтобы решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...