#django #jquery
#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).готово (функция () {
// Selecting Favorites
$('.favButtonHolder').click(function() {
var container = $(this);
$.get( container.attr('alt'), {'fav': 1}, function() {
container.find('.favButton').toggle();
});
});
});
По какой-то причине, когда я включаю первый бит кода, он работает просто отлично. Он скрывает правильный div и отображает правильный div.
По какой-то неизвестной причине, когда я включаю второй бит кода, он переворачивается всего на несколько миллисекунд, а затем переворачивается обратно (скрытый становится блоком, а затем почти сразу скрытым, и наоборот). Он выполняет GET, но не переключается должным образом.
Почему это должно произойти?
Комментарии:
1. У вас есть этот бит jQuery в ваших JS-файлах дважды или только один раз? Если вы его дублируете, он будет вызываться дважды, следовательно, отменяя себя в терминах
.toggle()
.2. Святое дерьмо, как глупо с моей стороны. Я переместил его из первого файла шаблона в файл JS и забыл удалить его там, где находится второй файл шаблона, в котором находится этот ошибочный код. Спасибо, отличная мысль.
3. Рад, что смог помочь. Я обнаружил это решение, совершив ту же ошибку!
Ответ №1:
Создание ответа из моего комментария
Проверьте свои файлы JavaScript, чтобы увидеть, дублировали ли вы опубликованный код. Если он присутствует в двух местах, при срабатывании .click()
события будут запущены два запроса GET и два .toggle()
s, которые отменяют друг друга по отношению к последнему. Проверьте свои JS-файлы на наличие дублирующегося кода (как у вас есть) и удалите его, чтобы устранить вашу проблему.