Я пытаюсь заставить это работать, но просто не могу его получить. Так что я пытаюсь сделать здесь, при нажатии ссылки (.hidepage) он запускает ajax, и когда он будет завершен, он изменит это имя ссылки и имя класса (на> showpage). И что не работает, когда вы снова нажимаете эту ссылку для показа страницы, она снова запускается.jQuery: по щелчку, изменить класс и сделать его reclickable
$('.hidepage').on('click', function(e){
var pageStatus = $(this).closest('tr').find('.pagestatus');
var button = $(this);
var pageID = $(this).attr('pageid');
$.ajax({
type: 'POST',
url: Jarvis.ajax_url + 'hidepage',
data: { pageid: pageID },
success: function(data)
{
console.log(data);
pageStatus.html('<span class="label label-default">Hide page</span>');
},
complete: function()
{
button.removeClass('hidepage').addClass('showpage').html('Show page');
},
error: function(xhr, textStatus, error){
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
}
});
});
И есть такой же код для класса showpage для противоположного действия. Все остальное работает. pageStatus меняется, имя ссылки меняется, но действие не делает. Спасибо за помощь! :)
Удаление класса и добавление нового класса не позволяет магически удалить обработчики событий, которые уже привязаны к элементу. – adeneo
@MikeCheel Существует код для противоположного действия для showname. И имена классов меняются .. – Marko
Почему вы помещаете часть switcheroo в полное событие вместо успеха? –