2

私は IE 10 を使用しており、ExtJs 4.1 を使用してツリー パネルを開発しました。IE 10 でアプリケーションを実行するとすべて正常に動作しますが、IE 8 に切り替えるとすぐに (IE 開発者ツールバーのブラウザー モード オプションを使用して IE 10 内で)、JavaScript エラーが発生します。EXTJでこれほど一貫性のない行動を見たことはありません。

問題を再現するには、次のフィドルを使用してください。

http://jsfiddle.net/BYqRN/20/

Ext.create('Ext.tree.Panel', {
    title: 'Simple Tree',
    renderTo: Ext.getBody(),
    width: 400,
    height: 400,
    store: {
        root: {
            expanded: true,
            children: [{
                checked: false,
                text: "1 detention",
                expanded: true,
                children: [{
                    checked: false,
                    text: '1.1 foo',
                    leaf: false,
                    children: [{
                        checked: false,
                        text: "1.1.1 India",
                        expanded: true
                    }, {
                        checked: false,
                        text: "1.1.2 Singapore",
                        expanded: true
                    }, {
                        checked: false,
                        text: "1.1.3 USA",
                        expanded: true
                    }]
                }, {
                    checked: false,
                    text: '1.2 bar',
                    leaf: true
                }]
            }, {
                checked: false,
                text: "2 homework",
                expanded: true,
                children: [{
                    checked: false,
                    text: "2.1 book report",
                    leaf: true
                }, {
                    checked: false,
                    text: "2.2 algebra",
                    expanded: true,
                    children: [{
                        checked: false,
                        text: "2.2.1 buy lottery tickets",
                        leaf: true
                    }, {
                        checked: false,
                        text: "2.2.2 buy lottery tickets 2",
                        leaf: true
                    }]
                }, {
                    checked: false,
                    text: "2.3 English report",
                    leaf: true
                }]
            }, {
                checked: false,
                text: "3 buy lottery tickets",
                leaf: true
            }]
        }
    },
    rootVisible: false,
    disableSelection: true,
    //selModel: {mode: 'SIMPLE'},
    listeners: {
        checkchange: function (record, checked, opts) {
            if (!checked) return;
            var parentNode = record.parentNode;

            // Deselect children
            function deselectChildren(record) {
                record.eachChild(function (record) {
                    record.set('checked', false);
                    deselectChildren(record);
                });
            }
            deselectChildren(record);

            // See if all siblings are selected now
            var allSiblingSelected = false;
            if (parentNode) {
                allSiblingSelected = parentNode.childNodes.reduce(function (previous, node) {
                    return previous && node.get('checked');
                }, true);
            }

            if (allSiblingSelected) {
                parentNode.set('checked', true);
                // Apparently won't fire on its own
                this.fireEvent('checkchange', parentNode, true, opts);
            }

            // Deselect ancestors
            else {
                while (parentNode) {
                    parentNode.set('checked', false);
                    parentNode = parentNode.parentNode;
                }
            }
        }
    }
});

IE 8で発生しているエラーも添付しています ここに画像の説明を入力

ご提案をお願いします。

ありがとうございました

4

1 に答える 1