EXTJS 4 データビューを使用していますが、各データ ノードの html 要素 (リンク) にリスナーを追加すると、一貫性のない結果が得られます。データビューに関連付けられているストアのロード リスナーにコードを配置しました。最初のロードでは機能しているように見えますが、いくつかの要素が欠落し始めると、後続のロードが悪化します。store.reload() を呼び出すたびに悪化します。
HTML要素IDが適切にレンダリングされていることをfirebugで確認しましたが、何らかの理由でストアをリロードすると、最初にいくつかの要素が欠落し始め、次にすべての要素が欠落し始めます。以下のロード リスナーのコード:
listeners: {
            load: function(store, records, successful, options){
                    var nodes = records;
                    for (i=0, len = nodes.length; i < len;i++){
                        var id = nodes[i].data.id;
                        var addtocartel = Ext.get('img-cart-'+id);
                        var viewel = Ext.get('img-view-'+id);
                        //Setting hidden class for nonimage items
                        switch (nodes[i].data.type) {
                            case 'image' :
                            viewel.addCls('imgprf');
                            addtocartel.addCls('cartprf');
                            break;
                            default :
                            viewel.addCls('sc_hidden');
                            addtocartel.addCls('sc_hidden');
                            viewel.hide();
                            addtocartel.hide();
                            break;
                        }
                        if(addtocartel !== null){
                            addtocartel.itemid = id;
                            addtocartel.on('click', function(e,t){
                              var el = Ext.get(t);
                              var imgrec = imagestore.getById(el.itemid);
                              e.stopEvent(); 
                              prfproductwindow.show();
                            });
                        }
                        if(viewel !== null){
                            viewel.itemid = id;
                            viewel.on('click', function(e,t){
                                var el = Ext.get(t);
                                var imgrec = imagestore.getById(el.itemid);
                            });
                        }
                    }
            }
        }