本帖最后由 blueweiwei 于 2010-01-21 16:02:42 编辑

解决方案 »

  1.   

    楼主你不觉得两个this到底是哪个吗
      

  2.   

    参见:http://www.jslab.org.cn/?tag=WhatIsThis
      

  3.   

    楼主可以搜搜js的作用域。
     $("id")的时候,this指的是id的dom对象。
      

  4.   

     首先告诉楼主一个简单的规则: 在javascript 中调用一个函数的时候, 函数中的this的指向是方法名前的.的那个对象(很绕口,看例子吧)
    比如 a.b(); 如果b中有this则 b中的this指向1 在比如a.b.c(); 指向的就是a.b这个对象。
    而如果b() 也就是说调用b函数时前面没有对象 则b中this指向window.
    //this.click_event=function(){$('link').onclick=function(){this.alert_color()}}
    向你这句话'$('link').onclick=function(){this.alert_color()}'。当按钮被点击时
    也就是 按钮.onclick()  (this指向按钮对象)  而按钮那个对象中并没有 alert_color这个属性。所以就错了。 
     var _this=this;
            $('link').onclick=function(){_this.alert_color()}
    而这个种你吧this赋值给_this  . _this是一个局部变量 而并非那个关键字this. 要知道其中的原理, 还请楼主仔细查阅javascript 闭包,作用域,作用域链 等相关信息。
      

  5.   

    只说一句this与其他语言的this不一样,楼主不要定势思维