我正在使用 EXTJS 4 数据视图,并且在将侦听器添加到每个数据节点中的 html 元素(链接)时结果不一致。我已将代码放在与数据视图相关的商店的负载侦听器中。它似乎在第一次加载时工作,但随后的加载变得更糟,因为它开始丢失一些元素。每次调用 store.reload() 都会变得更糟。
我已经在 firebug 中验证了 html 元素 ID 正在正确呈现,但是由于某种原因,当我重新加载商店时,它首先开始丢失一些元素,然后是所有元素。下面的负载监听器代码:
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);
});
}
}
}
}