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

img的click事件问题

var img_click = function (n) {
    var img = document.getElementsByTagName("img")[n];
    if (img.alt == "加号") {
        img.alt = "减号";
        img.src = "images/小减号2.gif";
    }
    else if (img.alt == "减号") {
        img.alt = "加号";
        img.src = "images/小加号.gif";
    }
}
var list1 = new Array();
list1[0] = "管理费用";
list1[1] = "税费";

var list2 = [["工资", "节日费"], ["国税", "地税"]];

window.onload = function () {
    //上方还有部分正确的代码
    var img_list = document.getElementsByTagName("img");
    for (var i = 0; i < img_list.length; i++) {
        if (img_list[i].style.display != "none") {
            img_list[i].onclick = img_click(i);
        }
    }
}

为什么我的click事件会在运行开始的时候就运行,然后点击事件的时候就无效了啊?!!
img click

------解决方案--------------------

这是在加载的时候调用了
window.onload = function () {
img_list[i].onclick = img_click(i); 
------解决方案--------------------
你要把在img控件写个onclick事件,这样点击图片才有用。window.onload 是页面加载的时候触发的,所以一开始会触发。
------解决方案--------------------
img_list[i].onclick = img_click(i);会直接调用的,仅绑定,应该只传函数名

function img_click(img){
    if (img == null 
------解决方案--------------------
 img.currentTarget != null) img = this;  //兼容ie
    if (img.alt == "加号") {
        img.alt = "减号";
        img.src = "images/小减号2.gif";
    }
    else if (img.alt == "减号") {
        img.alt = "加号";
        img.src = "images/