0

我试图让它发挥作用,但就是做不到。所以我在这里尝试做的是,当单击链接(.hidepage)时,它会运行 ajax,当它完成时,它将更改链接名称和类名称(到 > 显示页)。什么不起作用是当再次单击该链接以显示页面时,它再次运行隐藏。

$('.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);
    }
 });
});

对于相反的动作,显示页面类也有相同的代码。其他一切都在工作。pageStatus 正在更改,链接名称正在更改,但操作没有更改.. 感谢您的所有帮助!:)

4

1 回答 1

1

类展示页被动态添加到元素中。因此,事件处理程序不应绑定到 .hidepage 或 .showpage,而应绑定到其父级。下面的例子:

假设.showpage 的父级是#showPageDiv,

$('#showPageDiv').on('click', '.showpage', function() {
    //handle show page
});

同样,为 .hidepage 做,因为它也可以动态添加。

于 2013-09-29T15:17:51.840 回答