我过去从未真正遇到过这种情况,所以我很好奇。你能以某种方式做到以下几点吗?
我正在使用Datatables jQuery插件。这是我的基本电话:
var oTable = $("#example").dataTable();
我在一个名为EnableInlineEdit的类中有一个属性。如果是,我想添加内联函数调用:
var oTable = $("#example").dataTable().makeEditable();
这将使jEditable插件工作。我有更多的选项经常添加到我没有包含的Datatable插件中,因此只需创建条件if / else并创建两个单独的调用。这样做我会将一个大文件的大小加倍。有没有办法以某种方式创建一个内联条件,将.makeEditable添加到Datatable初始化的末尾,而不创建两个完全相同的代码副本,其中只有一个.makeEditable()就可以了?
答案 0 :(得分:1)
创建一个返回有问题值的命名函数。
function getval() {
return some.value; // the value that decides if .makeEditable should run
}
然后向链中添加.filter
次调用。
var oTable = $("#example").dataTable().filter(getval).makeEditable();
如果getval
返回真值,则会调用.makeEditable()
。否则不会。
如果您需要oTable
来引用原始元素,请将.end()
添加到链的末尾。
var oTable = $("#example").dataTable().filter(getval).makeEditable().end();
这可能是一个更好的解决方案。
只需加入.makeEditable()
次调用,如果EnableInlineEdit
为false
,则覆盖函数(或根据具体情况添加函数)。
if (EnableInlineEdit === false)
jQuery.fn.makeEditable = function() { return this; };
所以现在如果EnableInlineEdit
是false
,makeEditable
是一个除了返回jQuery对象之外什么都不做的函数,所以链接可以继续。
答案 1 :(得分:1)
你不能只做这样的事情:
var oTable = var oTable = $("#example").dataTable();
if (whatever) {
oTable.makeEditable();
}