Javascript 删除和恢复数据表分页单击功能
我在网页上有一个datatables实例,它有完整的页码。这包括第一个、上一个、下一个和最后一个按钮以及单独编号的按钮 表中的每一行都有一个“编辑”链接。单击它时,我想禁用分页功能。单击“取消”按钮时,我希望恢复分页功能。我可以很容易地完成第一部分,但无法恢复分页单击功能。这是我的密码: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
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()”函数?