congjl2002 2009-03-25 15:32
浏览 773
已采纳

Ext如何给a标签加入事件

html页面中有这样一些连接
[code="html"]
aaaaaa
bbbbbb
[/code]

然后我在js中想给其中一个a标签设置onclick事件,我是这样写的
[code="java"]

Ext.onReady(function(){
var aObjects=document.getElementsByTagName("a");//为了获得a的一个列表,不知道有没有更好的办法
Ext.each(aObjects,function(obj){
if(obj.href == "file:///smscm/aaa.do"){
obj.on('click',function(){});

}
}); 

});
[/code]

这样写完以后,执行的时候FF就报 [color=red]obj.on is not a function [/color]错误,请问我该如何修改,或者有没有更好的办法实现我说的功能,谢谢
[b]问题补充:[/b]
谢谢 yourgame
不过我的问题还是没有解决,你说的通过id的方式也同样出现obj.on is not a function的错误

原本的标签上是没有id的,我时候来测试到底什么原因的时候加上的,但是还是不行。现在的主要问题不是如何获得a对象,而是ext好像不允许给a加方法,请大家继续回答
[b]问题补充:[/b]
抱歉,刚刚实验了一下,通过id可以获得,但是问题是本来的页面是这样的
[code="java"]aaaaaa

bbbbbb [/code]

我该如何添加click事件呢?谢谢
[b]问题补充:[/b]
那我写的应该怎么改呢?现在报错不让添加事件啊

  • 写回答

8条回答 默认 最新

  • zhoujuan520 2009-03-25 21:54
    关注

    帮你写好了:)
    [code="js"]Ext.onReady(function(){
    var arr = Ext.query('a');//获得所有a标签 这里得到一个Array数组
    for(var i=0;i<arr.length;i++){
    var id = Ext.id();//生成唯一id
    arr[i].id = id; //给标签设置id
    var value = arr[i].innerHTML;//获得标签文本内容
    if(value == 'aaaaaa'){
    Ext.get(id).on('click',function(){ //增加单击事件
    alert('我是aaaaaa');
    });
    }
    if(value == 'bbbbbb'){
    Ext.get(id).on('click',function(){ //增加单击事件
    alert('我是bbbbbb');
    });
    }

    }
    

    });[/code]

    当你点击的时候会执行相应的函数,当然也去执行url路径 你测试的时候可以把链接改成这样

    aaaaaa
    bbbbbb

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站