zigen
@zigen

Почему второй раз не срабатывает Jquery?

Добрый день.Прошу прощения за давнокод.
Но!
Есть следующий скрипт выполняющий запрос:

$('#addtofavor').click(function(event){
    event.preventDefault();
    var url = $(this).attr('href');
    $.get(url, function(data){
               $('#addtofavor').html('Удалить из избранного');
               $('#addtofavor').attr('href','/article/remfavor/?id=' + $('#addtofavor').attr('data-news-id'));
               $('#addtofavor').attr('id','remfavor');
    });
});


$('#remfavor').click(function(event){
    event.preventDefault();
    var url = $(this).attr('href');
    $.get(url, function(data){
               $('#remfavor').html('В избранное');
               $('#remfavor').attr('href','/article/addtofavor/?id=' + $('#remfavor').attr('data-news-id'));
               $('#remfavor').attr('id','addtofavor');
    });
});


Объясните пожалуйста, почему после первого изменения модели по onclick в дальнейшем скрипт не срабатывает?
  • Вопрос задан
  • 900 просмотров
Решения вопроса 1
@yuras666
Если я правильно понял твою логику, то вот так должно работать:
$(document).on('click', '#addtofavor', function(event){
event.preventDefault();
var url = $(this).attr('href');
$.get(url, function(data){
$('#addtofavor').html('Удалить из избранного');
$('#addtofavor').attr('href','/article/remfavor/?id=' + $('#addtofavor').attr('data-news-id'));
$('#addtofavor').attr('id','remfavor');
});
});

$(document).on('click', '#remfavor', function(event){
event.preventDefault();
var url = $(this).attr('href');
$.get(url, function(data){
$('#remfavor').html('В избранное');
$('#remfavor').attr('href','/article/addtofavor/?id=' + $('#remfavor').attr('data-news-id'));
$('#remfavor').attr('id','addtofavor');
});
});
А вообще лучше не менять id - шники для элементов, а просто скрывать кнопки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы