看了好久一直不知道这段代码是怎么执行的

css部分:

 <style type="text/css">

        .red{

            width:100px;

            height:100px;

            background: red;

        }

        .blue{

            width:100px;

            height:100px;

            background: blue;

        }

html部分:

    <div id="box" class="red">测试Div</div>

js部分:

function addEvent(obj, type, fn) {

    var saved = null;

    if (typeof obj['on' + type] == 'function') {

        saved = obj['on' + type];

    }

    obj['on' + type] = function () {

        if (saved) saved();

        fn.call(this);

    };

}


addEvent(window, 'load', function () {

    var box = document.getElementById('box');

    addEvent(box, 'click', function () {

        alert('Lee');               //为什么这一句可以多次执行???

    });

    addEvent(box, 'click', toBlue);

});



function toRed() {

    this.className = 'red';

    //removeEvent(this, 'click');

    addEvent(this, 'click', toBlue);

}


function toBlue() {

    this.className = 'blue';

    //removeEvent(this, 'click');

    addEvent(this, 'click', toRed);

}


向来缘浅奈何情深
浏览 1326回答 2
2回答

nika_0001

这代码还是别看了,单击改变颜色, 这写的跟一坨米田共,你看了没好处帮助.正确做法是用addEventListener

uhelper_net

单击事件改变class属性.
打开App,查看更多内容
随时随地看视频慕课网APP