求EXTJS大牛解答,关于Ext.XTemplate的用法。
varimageTpl=Ext.create('Ext.XTemplate','<tplfor=".">','<divclass="newsView"id="{phone...
var imageTpl = Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="newsView" id="{phoneBookId}">',
'<div class="section"><span><font>{name}</font></span><a href="" onclick="this.mroeClick()">更多<a></div>',
'<ul>',
'<tpl for="newses">',
'{% if (xindex > 6) break; %}',
'<li><a href="">{subject:ellipsis(7)}<span>2007-08-06</span></a></li>',
'</tpl>',
'</ul>',
'</div>', '</tpl>');
在上面这段代码中,我想要点击tpl中的超链接能触发Extjs内部的事件,比如点击超链接可以弹出一个EXT窗口,而不是跳转到超链接herf指定的连接地址,请问这个功能能不能实现,求大神解答啊。
另外tpl中的onclick="this.mroeClick()这句代码调用时,始终出错,请问这个mroeClick写在哪个位置,是XTemplate中还是外层的panel中 展开
'<tpl for=".">',
'<div class="newsView" id="{phoneBookId}">',
'<div class="section"><span><font>{name}</font></span><a href="" onclick="this.mroeClick()">更多<a></div>',
'<ul>',
'<tpl for="newses">',
'{% if (xindex > 6) break; %}',
'<li><a href="">{subject:ellipsis(7)}<span>2007-08-06</span></a></li>',
'</tpl>',
'</ul>',
'</div>', '</tpl>');
在上面这段代码中,我想要点击tpl中的超链接能触发Extjs内部的事件,比如点击超链接可以弹出一个EXT窗口,而不是跳转到超链接herf指定的连接地址,请问这个功能能不能实现,求大神解答啊。
另外tpl中的onclick="this.mroeClick()这句代码调用时,始终出错,请问这个mroeClick写在哪个位置,是XTemplate中还是外层的panel中 展开
3个回答
展开全部
"点击超链接可以弹出一个EXT窗口" 当然是可以实现的。
1.其实,你这个问题的原因是,你不太了解javascript的 运行期上下文 造成的,你也可以理解为 作用域或者类似于指针都可以。
比如,你这里的 a 标签 的 onclick="this.mroeClick()" 这句代码,你函数调用前使用了 this 限定了上下文作用域, 你触发这个click 事件 的 这个this指向的是 <a/>标签本身,请问你的<a/>上有定义函数mroeClick()这个函数嘛?
因为我看不到你的代码,最简单的能访问到mroeClick() 的方法为 去掉this.,写为onclick="mroeClick(),然后你需要把mroeClick()放在全局作用域里,大概你的这个函数就是放在全局作用域里的,因为大部分没这个概念的人都是这样做的。其实这个函数无论放在哪都是可以访问得到的。你可以去改变访问是的上下文对象,只要在你当前加载过的任何一个地方都可以访问的到。
2.忘了回答你的Ext窗口了问题了。这个和上面的问题是一样的,首先你要明白你的Ext在哪个上下文导入的,那么Ext在那个上下文中是一个全局对象,和你当前要调用的地方的上下文是什么关系,如果同属于一个上下文,那么你直接就可以Ext.Msg.alert()了,如果Ext导入的地方是现在页面的父级,那么你parent.Ext.Msg.alert()就可以了,其他同理,你只需要在代码中把上下文环境切换到你要访问的东西的那个作用域里,无论在哪里都可以访问得到,只要被导入过。如果你能理解上下文作用域,将会使你的前端开发水平进阶。
1.其实,你这个问题的原因是,你不太了解javascript的 运行期上下文 造成的,你也可以理解为 作用域或者类似于指针都可以。
比如,你这里的 a 标签 的 onclick="this.mroeClick()" 这句代码,你函数调用前使用了 this 限定了上下文作用域, 你触发这个click 事件 的 这个this指向的是 <a/>标签本身,请问你的<a/>上有定义函数mroeClick()这个函数嘛?
因为我看不到你的代码,最简单的能访问到mroeClick() 的方法为 去掉this.,写为onclick="mroeClick(),然后你需要把mroeClick()放在全局作用域里,大概你的这个函数就是放在全局作用域里的,因为大部分没这个概念的人都是这样做的。其实这个函数无论放在哪都是可以访问得到的。你可以去改变访问是的上下文对象,只要在你当前加载过的任何一个地方都可以访问的到。
2.忘了回答你的Ext窗口了问题了。这个和上面的问题是一样的,首先你要明白你的Ext在哪个上下文导入的,那么Ext在那个上下文中是一个全局对象,和你当前要调用的地方的上下文是什么关系,如果同属于一个上下文,那么你直接就可以Ext.Msg.alert()了,如果Ext导入的地方是现在页面的父级,那么你parent.Ext.Msg.alert()就可以了,其他同理,你只需要在代码中把上下文环境切换到你要访问的东西的那个作用域里,无论在哪里都可以访问得到,只要被导入过。如果你能理解上下文作用域,将会使你的前端开发水平进阶。
展开全部
<a href='javascript:mroeClick();'>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'<a href="#" onclick="showTaskSet()">' + ‘test’+ '</a>';
mroeClick写在最外层
mroeClick写在最外层
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询