Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除和恢复数据表分页单击功能_Javascript_Jquery_Datatable_Pagination - Fatal编程技术网

Javascript 删除和恢复数据表分页单击功能

Javascript 删除和恢复数据表分页单击功能,javascript,jquery,datatable,pagination,Javascript,Jquery,Datatable,Pagination,我在网页上有一个datatables实例,它有完整的页码。这包括第一个、上一个、下一个和最后一个按钮以及单独编号的按钮 表中的每一行都有一个“编辑”链接。单击它时,我想禁用分页功能。单击“取消”按钮时,我希望恢复分页功能。我可以很容易地完成第一部分,但无法恢复分页单击功能。这是我的密码: function ghostPage(state) { // In this method, 'state' will be either true or false // If it's tr

我在网页上有一个datatables实例,它有完整的页码。这包括第一个、上一个、下一个和最后一个按钮以及单独编号的按钮

表中的每一行都有一个“编辑”链接。单击它时,我想禁用分页功能。单击“取消”按钮时,我希望恢复分页功能。我可以很容易地完成第一部分,但无法恢复分页单击功能。这是我的密码:

function ghostPage(state)
{
    // In this method, 'state' will be either true or false
    // If it's true, remove the click handler
    // If it's false, restore the click handler

    if(state)
    {
        $('#displayTable_paginate').find('a').each(function(e){
            $(this).off('click');
        })
    }
    else
    {
        $('#displayTable_paginate').find('a').each(function(){
            $(this).on('click');
        })
    }
}

如果要保存单击处理程序并在以后还原,请尝试此操作

function saveClickHander(){
    var $this;
    $('#displayTable_paginate').find('a').each(function(e){
        $this = $(this);
        $this.data().originalClick = $this.data("events")['click'][0].handler;
    }) 

}

function ghostPage(state)
{
    // In this method, 'state' will be either true or false
    // If it's true, remove the click handler
    // If it's false, restore the click handler

    if(state)
    {
        $('#displayTable_paginate').find('a').each(function(e){
            $(this).off('click');
        })
    }
    else
    {
        var $this;
        $('#displayTable_paginate').find('a').each(function(){
            $this = $(this);
            $this.on('click', $this.data().originalClick);
        })
    }
}

如果要保存单击处理程序并在以后还原,请尝试此操作

function saveClickHander(){
    var $this;
    $('#displayTable_paginate').find('a').each(function(e){
        $this = $(this);
        $this.data().originalClick = $this.data("events")['click'][0].handler;
    }) 

}

function ghostPage(state)
{
    // In this method, 'state' will be either true or false
    // If it's true, remove the click handler
    // If it's false, restore the click handler

    if(state)
    {
        $('#displayTable_paginate').find('a').each(function(e){
            $(this).off('click');
        })
    }
    else
    {
        var $this;
        $('#displayTable_paginate').find('a').each(function(){
            $this = $(this);
            $this.on('click', $this.data().originalClick);
        })
    }
}

我不知道这是怎么回事。我试过了,但是没有效果。我应该说,我可以用其他方法来阻止点击事件。我尝试禁用父div,但没有成功。我可以把所有的按钮都藏起来,但那很笨重。这很奇怪;似乎我可以用这些div做任何我想做的事情,除了打开和关闭点击$(this).off('click')只是将处理程序引用设置为null。您希望在解除绑定之前将引用存储在某个位置,以便以后可以恢复它。我不知道为什么它对你不起作用。这可能是因为您使用了“div.onclick=function(){…}”。似乎禁用元素是一种更好的方法,但我认为JQuery中没有“disable”函数。另一种方法是隐藏按钮并显示具有相同样式的非响应按钮,尽管这有点难看..我会说check if$('#displayTable_paginate').find('a').first().data(“events”)['click'][0]。处理程序为null否,在我删除click处理程序之前它不是null。在我的代码上下文中,如何(以及在何处)调用您提供的“saveClickHandler()”函数?我不确定它是如何工作的。我试过了,但是没有效果。我应该说,我可以用其他方法来阻止点击事件。我尝试禁用父div,但没有成功。我可以把所有的按钮都藏起来,但那很笨重。这很奇怪;似乎我可以用这些div做任何我想做的事情,除了打开和关闭点击$(this).off('click')只是将处理程序引用设置为null。您希望在解除绑定之前将引用存储在某个位置,以便以后可以恢复它。我不知道为什么它对你不起作用。这可能是因为您使用了“div.onclick=function(){…}”。似乎禁用元素是一种更好的方法,但我认为JQuery中没有“disable”函数。另一种方法是隐藏按钮并显示具有相同样式的非响应按钮,尽管这有点难看..我会说check if$('#displayTable_paginate').find('a').first().data(“events”)['click'][0]。处理程序为null否,在我删除click处理程序之前它不是null。在我的代码上下文中,如何(以及在何处)调用您提供的“saveClickHandler()”函数?