作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码:
xtype: 'dataview',
//title: 'test',
preventHeader: true,
height: 100,
bodyPadding: 10,
tpl: new Ext.XTemplate(
'<tpl for=".">',
'<a href="#">{name}</a>',
'</tpl>'
),
store: new RateManagement.store.ServiceStore(),
itemclick: function(this, record, item, index, e, eOpts) {
console.log(this);
}
我正在尝试将所选链接的文本输出到控制台;但是,我收到此错误:
Uncaught SyntaxError: Unexpected token this
这是一个jsfiddle:
当用户单击数据 View 中的链接时,如何运行代码?
引用号。 http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.view.View-event-itemclick
编辑:这是我的实际代码(与 jsfiddle 略有不同)。
xtype: 'dataview',
itemSelector: 'a.serviceLink',
tpl: tpl2,
store: new RateManagement.store.ServiceStore(),
listeners:{
"itemclick": function(dataview, record) {
console.log(dataview);
}
}
并且,tpl2
变量定义为:
var tpl2 = new Ext.XTemplate(
'<tpl for=".">',
'<a href="#">{name}</a>',
'</tpl>'
);
最佳答案
马特是正确的,你不能在函数中使用“this”。您还需要将其添加为监听器,就像我在这里所做的那样:http://jsfiddle.net/k4ggq/2/
listeners:{
"itemclick": function(dataview, record) {
console.log(dataview);
}
}
这至少会向控制台记录一些内容。
如果您指定“itemSelector”配置选项,则需要确保这反射(reflect)在“tpl”配置选项中。例如,如果 itemSelector 是“a.serviceLink”,则您的 tpl 需要类似于:
new Ext.XTemplate(
'<tpl for=".">',
'<a href="#" class="serviceLink">{name}</a>',
'</tpl>'
)
请参阅此处的工作示例:http://jsfiddle.net/k4ggq/4/
关于javascript - 如何在ExtJS中的数据 View 中点击链接执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21758570/
我是一名优秀的程序员,十分优秀!