javascript中,我把几个按钮的onClick都设置成同一个函数,当点鼠标时,怎样能知道是哪个按钮被点了?
4个回答
展开全部
<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对象的,可能跟你解释一下下说不清楚。
所以你就自己找资料吧。
展开全部
您可以更改此:
功能confirmUpdate(){
变种为btnUpdate =的document.getElementById(“为btnUpdate”)
如果(btnupdate.value ==“保存”;) {
doSave();
}否则{
btnupdate.value =“保存”;
}
功能doSave(){
的document.getElementById(“表“)行动=”doTest.action“;。
的document.getElementById(“形”)提交();。
}
功能confirmUpdate(){
变种为btnUpdate =的document.getElementById(“为btnUpdate”)
如果(btnupdate.value ==“保存”;) {
doSave();
}否则{
btnupdate.value =“保存”;
}
功能doSave(){
的document.getElementById(“表“)行动=”doTest.action“;。
的document.getElementById(“形”)提交();。
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
传个参数 this
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
传一个参数过去就知道了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询