日日新 2009-08-07 14:41
浏览 132
已采纳

如何js里面动态调用层的onclick事件?

我想在javascript里面动态调用div的onclick事件,怎么调用啊,
我用document.getElementById(ids).onclick="method()";不行
也用过document.getElementById(ids).setAttribute("onclick","method()");
都不行

  • 写回答

1条回答 默认 最新

  • swit1983 2009-08-07 15:58
    关注

    Javascript为元素动态的添加事件包括两种情况:
    不带参数的事件和带参数的事件。
    一、不带参数的事件:
    两种方式:直接给对象添加事件,节点添加事件
    例如给一个id为tab1的添加onclick事件
    第一种情况:
    var t = document.getElementById("NewTitle");
    t.onclick = function showmsg(){
    alert('Hello!World');
    }
    第二种情况 这种情况更加动态,更为实用,而且还能添加多个函数(添加的事件的顺序即执行顺序),呵呵
    var tb = document.getElementById("NewTitle");
    if(window.addEventListener){ // Mozilla, Netscape, Firefox
    td_value.addEventListener('click', alert('cc'), false);
    td_value.addEventListener('click', alert('cc'), false);
    } else { // IE
    td_value.attachEvent('onclick', function(){alert('changchang');});
    td_value.attachEvent('onclick', function(){alert('changchang');});
    }
    二、带参数的事件
    这里的functionName就是事件处理函数,如果是带参数的那该怎么办,
    有人说是这样:
    element.onclick=function(sb){
    alert(sb);
    }
    是不是上面的那种写法呢?答案是不正确的。
    解决方法:匿名函数:
    element.onclick=function() {
    functionName(param);
    };
    这样就巧妙的通过匿名方法实现了!

    别加引号

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?