日期:2014-05-16  浏览次数:20360 次

请教一个onclick事件的问题
问题是这样的:
本身图片上有个事件,现在我要改变它的事件(当前页面可能会多次的改变),但是这个事件是动态的(即未知要调用哪一个),只是通过一个返回值得到一个事件的名字,所以返回的事件是一个变量,我能不能把这个变量赋给图片的onclick事件?该怎么写才能认为这个变量是一个事件?代码大概象下面:
function   chgonclick(Obj,Oonclick){
        Obj.onclick   =   Oonclick//(这个就不认)
        Obj.onclick   =   function(){Oonclick()}//(这个也不认)
        Obj.setAttribute( "onclick ",function(){Oonclick()})//(这个也不认)
//所以不知道怎么把变量改变为事件,请大家帮帮忙!!
}

------解决方案--------------------
<input id= "wc " type= "button " value= "我说它就好用,不相信你点我 " />
<script type= "text/javascript ">
var $ = function (id) {
return document.getElementById(id);
};

var wc = function () {
alert( "wc ");
};

function chgonclick(Obj, Oonclick){
Obj.onclick = Oonclick//(这个就不认)
//不可能不好用吧?
}

window.onload = function () {
chgonclick($( "wc "), wc);
};
</script>
------解决方案--------------------
实验通过了asp.net1.1. t1,t2,t3是三个按钮,给分吧
function clickIt()
{
alert(10);
}

function t1_onclick() {
alert(1);
Form1.t2.onclick=function(){ clickIt(); }
Form1.t3.onclick=function(){ clickIt(); }
}
------解决方案--------------------
我个人觉得你把问题想的比较复杂了,我的想法是onclick都经过一个事件,然后在里边判断,通过你给的返回值判断该走哪个方法,直接把参数传过去比如:
function chgonclick(x){ // x是你需要用来判断想走哪个方法的参数
if(x == "1 "){
a(); //这里也可以传个参数到你的方
}else if(x == "2 "){
b(); //这里也可以传个参数到你的方

}......
}
我个人觉得这样比较简单
------解决方案--------------------

function functionname(n)
{
switch(n)
{
case 1:
function1;
break;
case 2:
function2;
break;

case 3:
function3;
break;
default:
function1:
}
}

document.element.onclick = functionname(n);