Ext(3)中的$(选择器)等价物

时间:2014-10-22 13:08:37

标签: javascript extjs

我有一个菜单组件,我试图通过添加一个类来选择所选链接,然后从所有菜单项中删除该类,然后再将其添加到新单击的链接中。

所以我只是找到父组件并查询它以查找所有锚点。然后我尝试chx所有锚的类,并删除那些“选定”类的一个/。

var anchors = component.el.query("a");
Ext.iterate(anchors, function(anchor, i){
anchor.removeClass('selected');
});
this.el.addClass('selected');

不起作用。然而:

var anchors = component.el.query("a");
Ext.iterate(anchors, function(anchor, i){
$(anchor).removeClass('selected');
});
this.el.addClass('selected');

有效吗? 什么是Ext本机相当于使这个工作?

1 个答案:

答案 0 :(得分:0)

使用ExtJS 3,您的锚点[index]将返回该特定节点的HTML。要使用addClassremoveClass,您需要使用anchors.item(index);

这样的事情会起作用:

Ext.onReady(function(){
    var div = Ext.get('test'),
        anchors = div.select("a"),
        linkChangeClass = function (anchors, anchor) {
            var index = anchors.indexOf(anchor);
            anchors.removeClass('selected');
            anchors.item(index).addClass('selected');
        };

    anchors.on('click', function() {
        linkChangeClass(anchors, this);
    });
});

小提琴:http://jsfiddle.net/98c6a57e/