Fancybox 数据源在数据表的第 2 页之后不工作
Fancybox data-source not working after page 2 of datatables
这是错误还是……我是笨蛋?
首先,我正在使用 jQuery 数据表和 fancyapps 编写一些 PHP 代码。我正在使用该行的 id 在数据表行上创建一些按钮。代码太长,扩展名很多js/css,这里代码笔:
https://codepen.io/anon/pen/RXpREY
所有 link 都对 fancyapp 有效,但为什么数据表第 2-3 页的 [详细信息] 按钮不起作用?从这段代码开始
<td>
<a data-fancybox2 data-type="iframe" href="javascript:;" data-src="detail.php?id=15" class="smallbutton">Detail</a> <a class="smallbutton" data-fancybox data-type="iframe" href="javascript:;" data-src="edit.php?id=15">Edit</a>
<a class="smallbutton" href="delete.php?id=15">Delete</a>
</td>
更奇怪的是,所有页面的[编辑]按钮都起作用了。有什么我想念的吗?因为这个我觉得真的很蠢。
默认情况下,Fancybox 使用 [data-fancybox]
属性通过委托进行初始化,这就是为什么无论 table 重绘如何,您的编辑 link 都可以正常工作。
但是,您会注意到您的设置不会持续编辑 link,这是您的第一条线索。
您想在每次 table 为 drawn/redrawn 时初始化 Fancybox。
table.on('draw', function() {
$('[data-fancybox]', this).fancybox({
toolbar: false,
smallBtn: true,
iframe: {
preload: false,
css: {
width: '600px'
}
},
afterClose: function() {
window.location.reload();
}
});
$('[data-fancybox2]', this).fancybox({
width: 600,
toolbar: false,
smallBtn: true,
iframe: {
preload: false
}
});
})
当您使用 $(something).fancybox()
初始化 fancybox 时,您正在为页面上当前存在的项目应用自定义选项。对于以后会存在的项目,出现在DOM或者使用selector
选项(见http://fancyapps.com/fancybox/3/docs/#usage)后,需要重新初始化,例如:
$().fancybox({
selector : '[data-fancybox]',
toolbar: false,
smallBtn: true,
iframe: {
preload: false,
css : {
width: '600px'
}
},
afterClose : function() {
window.location.reload();
}
});
这是错误还是……我是笨蛋?
首先,我正在使用 jQuery 数据表和 fancyapps 编写一些 PHP 代码。我正在使用该行的 id 在数据表行上创建一些按钮。代码太长,扩展名很多js/css,这里代码笔:
https://codepen.io/anon/pen/RXpREY
所有 link 都对 fancyapp 有效,但为什么数据表第 2-3 页的 [详细信息] 按钮不起作用?从这段代码开始
<td>
<a data-fancybox2 data-type="iframe" href="javascript:;" data-src="detail.php?id=15" class="smallbutton">Detail</a> <a class="smallbutton" data-fancybox data-type="iframe" href="javascript:;" data-src="edit.php?id=15">Edit</a>
<a class="smallbutton" href="delete.php?id=15">Delete</a>
</td>
更奇怪的是,所有页面的[编辑]按钮都起作用了。有什么我想念的吗?因为这个我觉得真的很蠢。
默认情况下,Fancybox 使用 [data-fancybox]
属性通过委托进行初始化,这就是为什么无论 table 重绘如何,您的编辑 link 都可以正常工作。
但是,您会注意到您的设置不会持续编辑 link,这是您的第一条线索。
您想在每次 table 为 drawn/redrawn 时初始化 Fancybox。
table.on('draw', function() {
$('[data-fancybox]', this).fancybox({
toolbar: false,
smallBtn: true,
iframe: {
preload: false,
css: {
width: '600px'
}
},
afterClose: function() {
window.location.reload();
}
});
$('[data-fancybox2]', this).fancybox({
width: 600,
toolbar: false,
smallBtn: true,
iframe: {
preload: false
}
});
})
当您使用 $(something).fancybox()
初始化 fancybox 时,您正在为页面上当前存在的项目应用自定义选项。对于以后会存在的项目,出现在DOM或者使用selector
选项(见http://fancyapps.com/fancybox/3/docs/#usage)后,需要重新初始化,例如:
$().fancybox({
selector : '[data-fancybox]',
toolbar: false,
smallBtn: true,
iframe: {
preload: false,
css : {
width: '600px'
}
},
afterClose : function() {
window.location.reload();
}
});