自己工作中在遇到的问题,只是自己记录,只是部分代码,可能你也遇到类似问题,虽然表述不是很严谨周到,类似问题可以参考下。
function addTab(subtitle, url, icon, id) { //增加选项卡函数 if (!$(‘#tabs‘).tabs(‘exists‘, subtitle)) { $(‘#tabs‘).tabs(‘add‘, { title : subtitle, content : createFrame(id,url), //选项卡内容参数,用的是函数返回值,函数定义在下面 closable : true, icon : icon }); } else { $(‘#tabs‘).tabs(‘select‘, subtitle); // 刷新 // $(‘#mm-tabupdate‘).click(); } curtab = subtitle; tabClose();}
function createFrame(id, url) { var s = ‘<iframe id="‘ + id + ‘" scrolling="auto" frameborder="0" src=‘ + url + ‘ " style="width:100%;height:100%;"></iframe>‘; return s;}//该函数拼接了字符串并其返回作为content 值 一、自己初步理解的是 content 内容是string格式的, 要更改选项卡的内容需更改函数定义,内部定义实现将目标内容转换为字符串然后将其返回。(后来测试过 content 内容可以为 number值,正常显示,object值不显示不报错,array报错) 测试函数
function aa(){//失败方法 //tab 主体结构下 添加了静态Html <div id="aa" style=""><table style="height:300px" class="tt"></table></div> 用以创建datagrid
$(‘.tt‘).datagrid(obj); var s=$("#aa").get(0).innerHTML; return s;}//问题是 只有第一次点击树形菜单生效,原因是静态结构只能使用一次,第一次点击菜单节点可以使用 //第二次点击菜单节点不能访问了 ---------原因暂时不详
二、换思路了 先把 Html <div id="aa" style=""><table style="height:300px" class="tt"></table></div> 动态添加到Tab上 然后再回调中再在已有结构中创建datagrid。
function bb(){ // var s = ‘ <div id="aa" style=""><table style="height:300px" id="tt"></table></div>‘; //不能用id id唯一 多个选项卡之间id 会冲突 改为class名就好了 var ss = ‘ <div id="aa" style=""><table style="height:300px" class="tt"></table></div>‘; return ss;}
回调函数中
addTab(treeNode.name, treeNode.action_url, "", treeNode.id);$(".tt").datagrid(obj);//在添加Tab卡之后加上一句 创建 datagrid。解决了 content 配置问题。
时间: 2024-10-12 19:39:10