Extjs 点击图像导航到下一个视图?
我正在使用dataview itemTpl显示我的图像(缩略图视图) 我能够正确地显示图像。如何在这些图像上添加itemtap? 因此,当我点击一个特定的图像时,会显示一个新的视图和点击的图像Extjs 点击图像导航到下一个视图?,extjs,sencha-architect,sencha-touch-2.1,sencha-touch-theming,Extjs,Sencha Architect,Sencha Touch 2.1,Sencha Touch Theming,我正在使用dataview itemTpl显示我的图像(缩略图视图) 我能够正确地显示图像。如何在这些图像上添加itemtap? 因此,当我点击一个特定的图像时,会显示一个新的视图和点击的图像 我用控制器试过了,但运气不好。你能帮我解决这个问题吗 我使用Sencha Architect 2作为示例 我正在尝试此代码。请更正我 第一视图 Ext.define('MyApp.view.MyPanel', { extend: 'Ext.Panel', alias: 'widget.ga
我用控制器试过了,但运气不好。你能帮我解决这个问题吗 我使用Sencha Architect 2作为示例 我正在尝试此代码。请更正我 第一视图
Ext.define('MyApp.view.MyPanel', {
extend: 'Ext.Panel',
alias: 'widget.galleryview',
config: {
layout: {
type: 'fit'
},
items: [
{
xtype: 'dataview',
id: 'gallerythumbnail',
layout: {
type: 'fit'
},
itemTpl: [
'<div class="lb-album">',
' <ul>',
' <li>',
' <img src="{filename}" width="120px" heigth="120px"/>',
' </li>',
' </ul> ',
'</div>'
],
store: 'ImageStore'
}
]
}
});
Ext.define('MyApp.view.FullViewPanel', {
extend: 'Ext.Panel',
config: {
layout: {
type: 'fit'
},
items: [
{
xtype: 'carousel',
id: 'mycarousel'
}
]
}
});
控制器
Ext.define('MyApp.controller.GalleryController', {
extend: 'Ext.app.Controller',
config: {
refs: {
nav: 'galleryview'
},
control: {
"dataview": {
itemtap: 'viewFullScreen'
}
}
},
viewFullScreen: function(dataview, index, target, record, e, options) {
Ext.ComponentQuery.query('galleryview').push('MyApp.view.FullView');
console.log(record);
}
});
谢谢你如果你只想在点击图像时做,你可以在该侦听器中检查事件 方法1
listeners : {
itemtap: function (list, index, item, record, senchaEvent) {
if (senchaEvent.event.target.nodeName == 'IMG') {
// Show next view
}
}
}
我以前是这样的
Ext.create('Ext.List', {
itemCls : 'my-dataview-item',
id : 'myList',
itemTpl : '<div><img src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span></div>',
store : aroundStore,
listeners : {
itemtap: function (list, index, item, record, senchaEvent) {
if(senchaEvent.event.target.nodeName =='IMG') {
me.othersProfileImageClicked(record.data);
}
else
me.onMessageClickedInAround(list, record);
}
}
});
方法2
您可以使用事件委托,如下所示
Ext.create('Ext.List', {
itemCls : 'my-dataview-item',
id : 'myList',
itemTpl : '<div><img src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span>',
store : aroundStore,,
listeners: [{
element: 'element',
delegate: 'img',
event: 'tap',
fn: function() {
alert('One!');
}
}
]
});
Ext.create('Ext.List'{
itemCls:“我的数据视图项”,
id:“myList”,
itemTpl:“{fullname}”,
门店:周边门店,,
听众:[{
元素:'元素',
代表:“img”,
事件:“点击”,
fn:函数(){
警报(‘一’);
}
}
]
});
事件委派可能正是您想要的:“我与controller一起尝试过,但没有成功”。你能告诉我们你在过去3个小时里尝试的代码吗。我尝试了控制器和事件委托,但没有运气!!如果(current_data.xindex>=0){Ext.Msg.alert(“Opps!!!”);/*var details='MyApp.view.ImageContainer';//this.push(details);无法将数据从该视图推送到其他视图如何将数据从该视图导航/推送到其他视图?(我正在使用Sencha Architect在Ext.Dataview的itemTpl中编写此代码)*/this.up('testpanel').push({xtype:'imagecontainer'});}else{Ext.Msg.alert(“Opps!!!”,“调用数据时出错”);}获取未捕获错误:无法调用未定义的方法'push'。有什么可以帮我找到解决方法吗。谢谢:谢谢你们分享答案,但我的代码中并没有senchaEvent。我正在使用Sencha architect。我在itemTap函数中得到的参数如下,您能为下面的itemTap提供一些帮助吗:函数(dataview,index,target,record,e,option){var store=Ext.getStore('TestStore');store.load();var current_store=dataview.getStore();var current_data=dataview.getStore().getAt(index.getData();//this.up('testpanel')。push({xtype:'imagecontainer'});}但是这个代码不起作用。我在这个数据视图上有img thunbnail,在点击图像时,它应该导航到Plz helpput这个“警报(e.event.target.nodeName)”在itemtap函数中,告诉我当您在图像上单击时您得到了什么,当我在图像上单击时您得到了什么警报我在警报中得到了IMG如果您仍然有问题,请告诉我?
Ext.create('Ext.List', {
itemCls : 'my-dataview-item',
id : 'myList',
itemTpl : '<div><img src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span>',
store : aroundStore,,
listeners: [{
element: 'element',
delegate: 'img',
event: 'tap',
fn: function() {
alert('One!');
}
}
]
});