五花包子 2015-06-01 07:28 采纳率: 0%
浏览 3118
已采纳

关于js中获取dom元素的事件(引用)的问题

在网页上显示楼层平面图(类似地图的那种),有两个容器A和B,A装着20个表示楼层里的商店的DOM元素(简称商店),B容器装着商店的名字(简称名字)。商店写
了单击事件(点击高亮效果)。并且有一个方法(f1)生成商店的名字(传入商店对象,返回名字对象),页面初始化时会遍历所有的商店生成名字。
现在问题是点击名字的时候没有触发名字下面 商店的单击事件,原因很简单,商店被名字挡住了。我想的解决方法是在f1的代码里获得商店对象的单击事件,然后赋给名字,
实现点击名字也有商店高亮效果。现在的问题就是该如何获取商店对象的单击事件?并把它复制给名字对象的单击事件?
PS:在名字对象的单击事件里调用商店的单击事件也能解决问题,但是总觉得差了写

  • 写回答

2条回答

  • Go 旅城通票 2015-06-01 08:40
    关注

    你是怎么绑定事件的?用jquery还是原始的js?

    你的商店和名字id起规则一点,有对应关系就好了,如shop_1,name_1依次类推

    点击name的时候通过 obj.id得到name的id,然后通过将name换为shop就得到shop的id了。。然后传入shop对象触发f1事件

    如果是jquery直接$('#'+nameobj.id.replace('name','shop').trigger('click')

    存js就用 document.getElementById(nameobj.id.replace('name','shop').onclick()或者f1.apply(document.getElementById(nameobj.id.replace('name','shop'))更改f1中的this指向。

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

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器