var addlink = function (d) { var html = '<div><a rel="nofollow" style="color:#1E9FFF" href="javascript:void(0);" lay-event="showRec">' + d.name+ '</a></div>'; return html };//这里可以加上链接,是这样的。
ea.table.on('tool(currentTable)', function (obj) {
var data = obj.data;
var url = "http://TEST?requestid=" + data.id;
window.open(url);
});
这段绑定点击事件,运行起来就出错了,提示:ea.table.on is not a function,说table.on不是一个函数。闹不清楚了,ea.table,存在啊,怎么说不存在 ea.table.on 这个点击事件函数呢?
ea.table是ea自己封装的对象,并不是layui的table对象。
但是ea.table.render方法确实会返回table对象实例,可以尝试使用这个对象加事件。
或者直接使用layui.table的方式,他是全局唯一的,应该也可以。
layui.table.on('tool(currentTable)', function (obj) {
console.log('1111');
var data = obj.data;
var url = "http://TEST?requestid=" + data.id;
window.open(url);
});
尝试这种也没反应。
ea的这种用法好像是不支持监听的,最好是传入template的时候,返回的html直接是最终的html算了,比如直接返回a标签的html。
或者加一个类名,用jq全局on监听。
我看了一下他的核心源码,esay-admin.js。
// 初始化表格
var newTable = table.render(options);
// 监听表格搜索开关显示
admin.table.listenToolbar(options.layFilter, options.id);
// 监听表格开关切换
admin.table.renderSwitch(options.cols, options.init, options.id, options.modifyReload);
// 监听表格开关切换
admin.table.listenEdit(options.init, options.layFilter, options.id, options.modifyReload);
return newTable;
这是表格关键部分,返回的newTable,的确是不支持on监听的,是返回的admin.table。另外table.render(options),渲染返回的也不是table对象,layui官网解释说,返回的是,tableIns对象。专门用来重载表格,方法级渲染的。
难道要改动esay-admin,源码才能实现嘛。他官网说支持所有table操作,显然不行啊。
对了,ea用的layui版本比较老,你给easyadmin.js增加一个方法,返回内部的layui.table,然后用这个table来做监听试试。
老版本的layui都需要use 模块。不知道是不是这个原因。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
老哥,你这问题解决了吗。我也遇到了
登录 后才可以发表评论