easyui的Tab创建有关问题

easyui的Tab创建问题
本帖最后由 luquansen 于 2014-03-26 22:15:16 编辑
欲实现功能:我用tree打开了一个tab(tab1),方法为
function addTab(subtitle, url, icon) {
    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;
}
在tab1中有一个datagrid,我想通过点击其中一个字段实现将该行数据在新建的一个tab(比如tb2)中打开。

问题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 () {
            pageInit();
            loadTree();
            loadGrid();
            easyrtInit();
            aInit();
        });
中调用了上面那个函数,可结果是输出了“11”,说明绑定事件函数被调用了,但是点击datagrid中的a标签没有任何反应,这是怎么回事呢?

问题2:上面没成功,我就想试试单纯地通过datagrid的toolbar中的按钮看能否实现,新建了一个查看按钮,并绑定一个点击事件
alert($('#tabs',parent.document).attr('id'));
                            $('#tabs',parent.document).tabs('add', {
                                title: 'qtitle',
                                content: 'ViewQues.aspx',
                                closable: true
                            });
,点击该按钮后成功输出了“tabs”的id,但是却没有增加新的tab,这是怎么回事呢?
------解决方案--------------------
本帖最后由 showbo 于 2014-03-27 10:14:25 编辑
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();},/*...........其他配置........*/});