jQuery.fn.tabs = function(control){
var element = $(this);
control = $(control);
element.find("li").bind("click", function(){element.find("li").removeClass("active");
$(this).addClass("active");var tabName = $(this).attr("data-tab");
control.find(">[data-tab]").removeClass("active");
control.find(">[data-tab='" + tabName + "']").addClass("active");
});element.find("li:first").addClass("active");return this;
};var element = $(this);这句是什么意思啊,为什么还要把它转换成jquery对象啊,this不就是实例出来的一个jQuery的实例吗,还加什么$啊?

解决方案 »

  1.   

    不用再$操作了,this对象已经为包装过的jquery对象了,在$一次没什么意义
      

  2.   

    this 表示的是javascript提供的当前对象
    $(this) 表示的是用jquery封装候的当前对象this 对象可以直接访问其属性,比如 this.style.display="none"
    $(this) 只能使用jquery提供的方法访问,比如 $(this).css("display","none")
      

  3.   

    是,书上那样写的,看来书上作者水平了了啊,书是mvc的javascript的富应用开发
      

  4.   

    var element = $(this); //这样写的原因是
    control = $(control);
    element.find("li").bind("click", function(){
     element.find("li").removeClass("active"); //这里要用到外层的对象
     $(this).addClass("active"); //这个 $(this) 是套红的那个
      

  5.   

    写这本书的是美国的一个环球旅行家,在旅行途中突然想到钱花的差不多了,得挣点钱,于是写本书吧,写的途中遇到各种干扰,把this写成$(this)了,看来他水平比写jquery库的差一截啊,呵呵
      

  6.   

    用firefox debug调试下就会发现不同了
    $(this)是jquery对象,this    dom对象,另外$(this)[0]返回的也是dom对象
      

  7.   

    难道你问的不是this和$(this)的区别么? 是我眼花
      

  8.   

    难道你问的不是this和$(this)的区别么? 是我眼花你用firebuy测试下这个例子中的this,试试,是$对象啊
      

  9.   

    难道你问的不是this和$(this)的区别么? 是我眼花你用firebuy测试下这个例子中的this,试试,是$对象啊alert(this.size());就知道了
      

  10.   

    $.fn.tabs中的this对象已经是包装过了的,在$一次没意义。。自己log下对象就知道了<script src="http://www.coding123.net/js/jquery.js" type="text/javascript"></script>
    <input id="aa" type="text" value="123" />
        <script>
            $.fn.tabs = function () {
                console.log(this);
                console.log($(this));
            }
            $('#aa').tabs();
        </script>
    书也不一定就100%正确了,而且代码演示这种错误更加多,当然在$一次也没什么
      

  11.   

    理解了,看了jquery源码,感觉new出来的jquery对象是一个jQuery.prototype.init函数的实例,实际上不是$的实例,只不过把$.prototype给了jQuery.prototype.init的原型,是吧?