日期:2014-05-17  浏览次数:20718 次

请问:怎样在JS中动态添加代参事件
function judge(div,num){
//匹配
switch(num){
case "1":
  //更改图片路径
  div.style.backgroundImage = "url('images/get.jpg)";
break;
case "2":
  //更改图片路径
           div.style.backgroundImage = "url('images/春.jpg')";
break;
}
function inital(){
//获取li对
         var objLi = document.getElementsByTagName("li");
       //循环
        for(var i = 1;i <= objLi.length;i++){
  objLi[i].onclick = function(){check(i)};
       }
}
结果说我的onclick为空!请问,代参应该如何解决呢?

------解决方案--------------------
1、你确定inital()方法是要写在judge(div,num)里面?
2、没见你的check(i),是否是因为没有贴出来?
3、没见有哪里调用到inital()方法,自然不会去执行objLi[i].onclick = function(){check(i)};
------解决方案--------------------
objLi[i].onclick = function(){check(i)};
---------------------------------------------
方法1:
objLi[i].onclick = function(i){
    //...代码实现
};

方法2:
objLi[i].onclick = check;

方法3:
objLi[i].onclick = new Function("check(i);");

objLi[i].onclick = new Function("check(" + i + ");");

方法4:
使用attachEvent或addEventListener方法,有兴趣的话,可参考:
http://blog.csdn.net/tzsmin/article/details/3784683
------解决方案--------------------
页面加载完有调用init方法吗?
------解决方案--------------------
check方法有定义吗?