javascript中,我把几个按钮的onClick都设置成同一个函数,当点鼠标时,怎样能知道是哪个按钮被点了?

如题,正在学JavaScript,求助啊... 如题,正在学JavaScript,求助啊 展开
 我来答
灵葬外与他29
2014-02-21 · TA获得超过2183个赞
知道小有建树答主
回答量:1221
采纳率:50%
帮助的人:953万
展开全部
<html>
<head>
<script type="text/javascript">
    function clickHandle(e){
        var obj = e.srcElement ? e.srcElement : e.target;
        alert(obj.value);
    }
    function clickHandle1(_this){
        alert(_this.value);
    }
    function clickHandle2(){
        var e = document.all ? window.event : null;
        if(!e){
            var func = clickHandle2.caller;
            while(func!=null){  
                var arg0 = func.arguments[0]; 
                if(arg0) 
                { 
                    if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || 
(typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
                    {  
                        e = arg0;
                        break;
                    }
                }     
            } 
        }
        var obj = e.srcElement ? e.srcElement : e.target;
        alert(obj.value);
    }
</script>
</head>
<body>
    <input type="button" value="按钮1" onclick="clickHandle(event)" />
    <input type="button" value="按钮2" onclick="clickHandle(event)" />
    <input type="button" value="按钮3" onclick="clickHandle(event)" />
    <br />
    <input type="button" value="按钮1" onclick="clickHandle1(this)" />
    <input type="button" value="按钮2" onclick="clickHandle1(this)" />
    <input type="button" value="按钮3" onclick="clickHandle1(this)" />
    <br />
    <input type="button" value="按钮1" onclick="clickHandle2()" />
    <input type="button" value="按钮2" onclick="clickHandle2()" />
    <input type="button" value="按钮3" onclick="clickHandle2()" />
</body>
</html>

第一组按钮传递了event对象,根据event对象可以获取事件源对象。

因为IE里面的event只有srcElement对象,

而chrome和火狐里面的event只有target对象,所以为了兼容就写成

var obj = e.srcElement ? e.srcElement : e.target;

srcElement和target都是事件源对象。

第二组按钮直接把本身传递进去了,所以参数就是源对象。

第三组按钮什么都没传递,所以要手动获取到event对象之后再按第一组按钮的方法做。

因为IE里面直接可以用window.event获取event对象,而其他浏览器不行。

下面的一个while就是循环得到event对象的,可能跟你解释一下下说不清楚。

所以你就自己找资料吧。

sxcmp327
2014-02-21 · TA获得超过1916个赞
知道小有建树答主
回答量:2638
采纳率:11%
帮助的人:892万
展开全部
您可以更改此:

功能confirmUpdate(){

变种为btnUpdate =的document.getElementById(“为btnUpdate”)

如果(btnupdate.value ==“保存”;) {

doSave();

}否则{

btnupdate.value =“保存”;

}

功能doSave(){

的document.getElementById(“表“)行动=”doTest.action“;。

的document.getElementById(“形”)提交();。
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yugi111
2014-02-21 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
传个参数 this
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cs903016
2014-02-21 · TA获得超过1179个赞
知道小有建树答主
回答量:2599
采纳率:80%
帮助的人:1732万
展开全部
传一个参数过去就知道了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式