easyui的Tab创建有关问题
easyui的Tab创建问题
欲实现功能:我用tree打开了一个tab(tab1),方法为
问题1:我通过datagrid中列属性“formatter”,将其中一列换成一个a标签
然后绑定一个点击事件函数
问题2:上面没成功,我就想试试单纯地通过datagrid的toolbar中的按钮看能否实现,新建了一个查看按钮,并绑定一个点击事件
------解决方案--------------------
1,选择器错了,自己看a的位置。。而且你的datagrid数据是ajax异步加载的,初始化的事件是在DOM树完成时执行,ajax不一定数据就返回了,要在datagrid的onLoadSuccss事件中执行你的事件初始化
{ field: 'QuesTitle', title: '标题', width: 600, sortable: true, align: 'left',formatter:function(value,rowData,rowIndex){return "<a href='javacript:;' class='titlea' value='"+rowData.QuesID+"'><span>"+value+"</span></a>";} }
$("a.atitle").
欲实现功能:我用tree打开了一个tab(tab1),方法为
function addTab(subtitle, url, icon) {在tab1中有一个datagrid,我想通过点击其中一个字段实现将该行数据在新建的一个tab(比如tb2)中打开。
if (!$('#tabs').tabs('exists', subtitle)) {
$('#tabs').tabs('add', {
title: subtitle,
content: createFrame(url),
closable: true,
icon: icon
});
} else {
$('#tabs').tabs('select', subtitle);
$('#mm-tabupdate').click();
}
tabClose();
}
function createFrame(url) {
var s = '<iframe scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:100%;"></iframe>';
return s;
}
问题1:我通过datagrid中列属性“formatter”,将其中一列换成一个a标签
{ field: 'QuesTitle', title: '标题', width: 600, sortable: true, align: 'left',formatter:function(value,rowData,rowIndex){return "<a href='javacript:;' class='titlea' value='"+rowData.QuesID+"'><span>"+value+"</span></a>";} }
然后绑定一个点击事件函数
function aInit() {alert("11");并在
$("a.atitle").live("click",function(){alert("22");
var qid=$(this).val();
var qtitle=$(this).children('span').text();
$('#tabs').tabs('add',{
title:qtitle,
content:'Tab Body',
closable:true
});
});
}
$(function () {中调用了上面那个函数,可结果是输出了“11”,说明绑定事件函数被调用了,但是点击datagrid中的a标签没有任何反应,这是怎么回事呢?
pageInit();
loadTree();
loadGrid();
easyrtInit();
aInit();
});
问题2:上面没成功,我就想试试单纯地通过datagrid的toolbar中的按钮看能否实现,新建了一个查看按钮,并绑定一个点击事件
alert($('#tabs',parent.document).attr('id'));,点击该按钮后成功输出了“tabs”的id,但是却没有增加新的tab,这是怎么回事呢?
$('#tabs',parent.document).tabs('add', {
title: 'qtitle',
content: 'ViewQues.aspx',
closable: true
});
------解决方案--------------------
1,选择器错了,自己看a的位置。。而且你的datagrid数据是ajax异步加载的,初始化的事件是在DOM树完成时执行,ajax不一定数据就返回了,要在datagrid的onLoadSuccss事件中执行你的事件初始化
{ field: 'QuesTitle', title: '标题', width: 600, sortable: true, align: 'left',formatter:function(value,rowData,rowIndex){return "<a href='javacript:;' class='titlea' value='"+rowData.QuesID+"'><span>"+value+"</span></a>";} }
$("a.atitle").
$('#xxx').datagrid({onLoadSuccess:function(){aInit();},/*...........其他配置........*/});