jquery插件里$(this)和this的问题

两个问题:1、jquery插件的写法,网上查到有两种第一种:(function($){$.fn.pluginName(opt){//Ourpluginimplementa... 两个问题:
1、jquery插件的写法,网上查到有两种
第一种:(function ($) {
$.fn.pluginName(opt) {
// Our plugin implementation code goes here.
}
})(jQuery);
第二种
(function($){
$.fn.extend({
pluginName:function(opt,callback){
// Our plugin implementation code goes here.
}
})
})(jQuery);
请问这两张有什么区别? 貌似第一种用的人多,但我看jq源码中是第二种
——————————————————————————————————————————
2、$(this)和this的问题
(function ($) {
$.fn.pluginName(opt) {
alert(this===$(this)); //这里的this和$(this)指的都是jquery对象吧? 用的时候写哪个都不会出问题, 但是会弹出false 为什么?
}
})(jQuery);
展开
 我来答
http_p
推荐于2016-10-13 · TA获得超过1095个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:574万
展开全部
  1. $.fn.pluginName = function(opt){}

    就是为jquery的prototype定义了函数, 这样, 任何一个jquery对象都可以使用这个成员函数, 这种写法直观明了, 你只要知道的就是$.fn = jQuery.prototype = $.prototype

  2. $.fn.extend, 在jquery中重新定义了extend的使用方法, 如果只有一个参数, 那么就是扩展本身, 即$.fn.extend({}), 就是用{}对象扩展$.fn, 也就是jquery的prototype, 这样, 和上面那个就一样了

    两者没有什么区别, 怎么用看自己习惯和理解

  3. 还有一种写法就是$.extend($.fn, {}); 这个extend不是一个参数, 它作用是用后面的扩展前面的, 即用{}扩展了$.fn, 还是一个意思

  4. 关于$(this)和this, 你关键还是要知道this表示的是什么, 如果this是一个dom元素, 那么$(this)是一个jquery元素, 如果this是一个jquery元素, 那么$(this)还是一个jquery元素, 虽然你用==去判断两者是不同的, 但是他们内容都是一样的, 这是我的经验, 我并没有去深入看过源码, jquery的api中似乎也没有说这个.

  5. 关于this和$(this)还要注意一点$('.abc').click(function(){});中this是dom元素, $(this)是jquery元素, 而写插件的时候, 由于是扩展prototype, 所以this就是对象实例, 即this就是jquery对象, $(this)还是jquery对象, 他们虽然不是同一对象, 但是内容是完全相同的

阿刚炖蛋
2013-06-30 · TA获得超过3004个赞
知道大有可为答主
回答量:1789
采纳率:92%
帮助的人:967万
展开全部
1.这两种方式的原理都是一个,就是为jquery扩展成员函数。
具体区别,说不明白。

2.this和$(this)还是不同的,后者为jquery对象,前者要看具体的上下文,但大多数情况下为dom元素。

愚见愚见··
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FlownSum
2013-07-01
知道答主
回答量:27
采纳率:0%
帮助的人:12万
展开全部
1. 这两种本质上没有区别, 第一种写法适合单个Plug开发. 比较直观,第二种适合批量添加的Plug
2. 关于 this 和$(this),这里只有一个可以肯定的,那就是$(this)一定是jQuery对象,而this是什么是要看上下文的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式