首页 新闻 会员 周边 捐助

如何阻止js动态生成的li树状列表中onclick事件重复调用问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-04-30 10:18
 for (i; i < ChildArr.length; i++) {
                if (ChildArr[i].NAME != null && Pid == ChildArr[i].PARENT_ID) {
                    childId = ChildArr[i].ID;

                    $("#" + Pid + "l").append("<li style=\"display:block;\"  id=\"" + childId + "\" ondblclick=\"FindPid(\'" + childId + "\')\" onclick=\"showli(\'" + childId + "\')\">" + ChildArr[i].NAME + "</li>");
                    ChildArr[i].NAME = null;
                    Alchild(ChildArr, childId);

                }

 function FindPid(pid) {
            document.getElementById("P_id").value = pid;
            document.getElementById("P_name").value = document.getElementById(pid).value;
            if (document.getElementById("P_id").value != " ") {
                document.getElementById("btn_reset").onclick();
            }

        }

 

  • 点击li后findpid()正确执行一次后,跳到页面顶部然后出现重复执行findpid(),直到pid是树的父id才停止执行

Djony的主页 Djony | 初学一级 | 园豆:184
提问于:2015-01-20 16:22
< >
分享
最佳答案
0

混乱, ondblclick onclick, 我就从来没正常用过。。。。 兼容性不好。

所以说, 你可以用jquery+双击单击插件来做。 可以给你节省时间。 

收获园豆:20
问天何必 | 老鸟四级 |园豆:3311 | 2015-01-20 16:49

只有一个onclick事件是也会出现重复执行调用函数,怎么回事

Djony | 园豆:184 (初学一级) | 2015-01-20 17:14

@Djony: 你这个是树状的吧,  那你可以看看关于js中的冒泡事件, 然后消除冒泡效果。 问题就解决了。 

依然建议你用jquery做, 否则兼容性烦死你。 

问天何必 | 园豆:3311 (老鸟四级) | 2015-01-20 17:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册