1. 程式人生 > >easyUi裡tab存在則更新iframe寫法問題

easyUi裡tab存在則更新iframe寫法問題

easyUi裡tab存在則更新iframe時,如果是從easyUi裡的datagrid雙擊建立一個子頁面標籤,會出現提示Uncaught TypeError: Cannot read property 'nodeType' of undefined

 function addTab(title, url) {
        if ($('#content').tabs('exists', title)) {
            $('#content').tabs('select', title);
            var selTab = $('#content').tabs('getSelected');
            var url = $(selTab.panel('options').content).attr('src');
            var content = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
            $('#content').tabs('update', {//如果標籤存在,就重新整理頁面
                tab: selTab,
                options: {
                    content: content
                }
            })
        } else {
            var content = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
            $('#content').tabs('add', {
                title: title,
                content: content,
                closable: true
            });
        }

    }

後來改成下面這種寫法後,就可以了,但還是不明白為啥,不知道有誰可以給我解答一下下~
 function addTab(title, url) {
        var jq = top.jQuery;

        if (jq("#content").tabs('exists', title)) {
            jq("#content").tabs('select', title);
            var selTab = $('#content').tabs('getSelected');
            var url = $(selTab.panel('options').content).attr('src');
            var content = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
            $('#content').tabs('update', {//如果標籤存在,就重新整理頁面
                tab: selTab,
                options: {
                    content: content
                }
            })
        } else {
            var content = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
            jq("#content").tabs('add', {
                title: title,
                content: content,
                closable: true
            });
        }

    }