jQuery切换将其自身切换回其原始状态

时间:2011-09-28 18:13:28

标签: django jquery

我有两位代码,几乎相同

<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 个答案:

答案 0 :(得分:1)

从我的评论中做出回答


检查您的JavaScript文件,看看您是否复制了您发布的代码。如果它出现在两个地方,当.click()事件触发时,将触发两个GET请求和两个.toggle(),相对于后者相互抵消。检查您的JS文件是否有重复的代码(如您所示)并将其删除以解决您的问题。