Javascript ExtJS从同级元素获取值
我正在使用extjs3.4 我已将面板动态添加到父面板。 我想在单击时捕获迭代器(I)的值。 此迭代器的值保存在隐藏元素中:Javascript ExtJS从同级元素获取值,javascript,extjs,Javascript,Extjs,我正在使用extjs3.4 我已将面板动态添加到父面板。 我想在单击时捕获迭代器(I)的值。 此迭代器的值保存在隐藏元素中: xtype: 'hidden', cls: 'hidden-ID', value: i 所以基本上只要点击我就能找到这个兄弟姐妹(可能是通过类名或类型?) 但我真的不知道怎么做——我一直试图找到父母,但从父母那里我找不到孩子 例如 代码: Ext.onReady(函数(){ var eleCatDisplay2=新的外部面板({ renderTo:Ext.getBody
xtype: 'hidden',
cls: 'hidden-ID',
value: i
所以基本上只要点击我就能找到这个兄弟姐妹(可能是通过类名或类型?)
但我真的不知道怎么做——我一直试图找到父母,但从父母那里我找不到孩子
例如
代码:
Ext.onReady(函数(){
var eleCatDisplay2=新的外部面板({
renderTo:Ext.getBody(),
身高:350
});
对于(i=0;i<10;i++){
eleCatDisplay2.添加(新的外部面板({
布局:“hbox”,
边界:错,
风格:{
玛金托普:“10px”
},
项目:[{
xtype:'displayfield',
弹性:1,
值:'rowNum__;'+i.toString()
}, {
xtype:'隐藏',
cls:“隐藏ID”,
价值:i
}, {
xtype:'面板',
弹性系数:0.3,
边界:错,
html:“单击以发送”,
听众:{
“渲染”:函数(面板){
panel.body.on('click',function(){
//在这里,我想抓住我的价值
警报(“测试”);
});
}
}
}]
}));
}
eleCatDisplay2.doLayout();
});
解决方案(在显示字段中,我添加了cls:“显示猫名”):
也可以将值存储在面板的某些自定义属性中:
Ext.onReady(function () {
var eleCatDisplay2 = new Ext.Panel({
renderTo: Ext.getBody(),
height: 350
});
for (i = 0; i < 10; i++) {
eleCatDisplay2.add(new Ext.Panel({
layout: 'hbox',
border: false,
style: {
marginTop: '10px'
},
items: [{
xtype: 'displayfield',
flex: 1,
value: 'rowNum__' + i
}, {
xtype: 'hidden',
cls: 'hidden-ID',
value: i
}, {
xtype: 'panel',
flex: 0.3,
border: false,
html: '<div>click to send</div>',
somePropertyName: i,
listeners: {
'render': function (panel) {
panel.body.on('click', function () {
console.log(panel.somePropertyName);
});
}
}
}]
}));
}
eleCatDisplay2.doLayout();
});
Ext.onReady(函数(){
var eleCatDisplay2=新的外部面板({
renderTo:Ext.getBody(),
身高:350
});
对于(i=0;i<10;i++){
eleCatDisplay2.添加(新的外部面板({
布局:“hbox”,
边界:错,
风格:{
玛金托普:“10px”
},
项目:[{
xtype:'displayfield',
弹性:1,
值:'rowNum_u__;'+i
}, {
xtype:'隐藏',
cls:“隐藏ID”,
价值:i
}, {
xtype:'面板',
弹性系数:0.3,
边界:错,
html:“单击以发送”,
somePropertyName:i,
听众:{
“渲染”:函数(面板){
panel.body.on('click',function(){
console.log(panel.somePropertyName);
});
}
}
}]
}));
}
eleCatDisplay2.doLayout();
});
非常感谢。正是我错过的。
var cNM = Ext.getCmp(this.up('.hbox-parent').select('.display-cat-name').elements[0].id).value;
var catId = this.up('.hbox-parent').select('.hidden-ID').elements[0].value;
Ext.onReady(function () {
var eleCatDisplay2 = new Ext.Panel({
renderTo: Ext.getBody(),
height: 350
});
for (i = 0; i < 10; i++) {
eleCatDisplay2.add(new Ext.Panel({
layout: 'hbox',
border: false,
style: {
marginTop: '10px'
},
items: [{
xtype: 'displayfield',
flex: 1,
value: 'rowNum__' + i
}, {
xtype: 'hidden',
cls: 'hidden-ID',
value: i
}, {
xtype: 'panel',
flex: 0.3,
border: false,
html: '<div>click to send</div>',
somePropertyName: i,
listeners: {
'render': function (panel) {
panel.body.on('click', function () {
console.log(panel.somePropertyName);
});
}
}
}]
}));
}
eleCatDisplay2.doLayout();
});