本帖最后由 spcmusic 于 2010-12-22 21:10:52 编辑

解决方案 »

  1.   

    TRY
    var dhtml =
    {
      a1 : "a1",
      a2 : "a2",  init : function()
      {
      var that = this;
      $("div").bind('click', function() {
      that.a1 = "a2";
      });
      }
    };
      

  2.   

    在复杂的大量代码里,如果自己不能确定this关系的时候,直接用对象名称也是个不错的选择!
    init : function()
      {
      $("div").bind('click', function() {
      dhtml.a1 = "a2"; //这里直接用对象名
      });
      }
      

  3.   

    我想直接把this传进去,直接用this.a1这样的。在jquery里没有办法么?prototype里是可以的。
      

  4.   


    var dhtml =
    {
      a1 : "a1",
      a2 : "a2",  init : function()
      {
      $("div").bind('click', clickEvent);
      },
      clickEvent: function(){
       this.a1 = "a2";
      }
    };
      

  5.   

    var message = 'Spoon!';
    $('div').bind('click', {msg: message}, function(event) {
      alert(event.data.msg);
    });
    详细:http://api.jquery.com/bind/
    不知道行不
      

  6.   


       楼主一定要用JQUERY来完成??
      var dhtml =
    {
      a1 : "a1",
      a2 : "a2",
      
      init : function()
      {
       var that=$(this);//其实和版主的意思都一样,JQ里也一样!但是不明白你这么做的意义是?
      $("div").bind('click', function() {
      that.a1 = "a2";
      });
      }
    };
      

  7.   

    看来jquery是无法吧this传入,替换原来的this。完毕给分。
      

  8.   

    var that = this;
                    li.bind('click.pageNav',{i:i,that:that},function(e){
          var i = e.data.i;
          that =  e.data.that;
          alert(that.a1);
          that.to(i);
    });