第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jquery插件里$(this)和this的問題?

jquery插件里$(this)和this的問題?

蝴蝶不菲 2019-02-06 09:06:41
兩個問題:1、jquery插件的寫法,網(wǎng)上查到有兩種第一種:(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); 請問這兩張有什么區(qū)別? 貌似第一種用的人多,但我看jq源碼中是第二種——————————————————————————————————————————2、$(this)和this的問題(function ($) {$.fn.pluginName(opt) {alert(this===$(this)); //這里的this和$(this)指的都是jquery對象吧? 用的時候?qū)懩膫€都不會出問題, 但是會彈出false 為什么?}})(jQuery);
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個贊

  1. $.fn.pluginName = function(opt){}

    就是為jquery的prototype定義了函數(shù), 這樣, 任何一個jquery對象都可以使用這個成員函數(shù), 這種寫法直觀明了, 你只要知道的就是$.fn = jQuery.prototype = $.prototype

  2. $.fn.extend, 在jquery中重新定義了extend的使用方法, 如果只有一個參數(shù), 那么就是擴(kuò)展本身, 即$.fn.extend({}), 就是用{}對象擴(kuò)展$.fn, 也就是jquery的prototype, 這樣, 和上面那個就一樣了

    兩者沒有什么區(qū)別, 怎么用看自己習(xí)慣和理解

  3. 還有一種寫法就是$.extend($.fn, {}); 這個extend不是一個參數(shù), 它作用是用后面的擴(kuò)展前面的, 即用{}擴(kuò)展了$.fn, 還是一個意思

  4. 關(guān)于$(this)和this, 你關(guān)鍵還是要知道this表示的是什么, 如果this是一個dom元素, 那么$(this)是一個jquery元素, 如果this是一個jquery元素, 那么$(this)還是一個jquery元素, 雖然你用==去判斷兩者是不同的, 但是他們內(nèi)容都是一樣的, 這是我的經(jīng)驗(yàn), 我并沒有去深入看過源碼, jquery的api中似乎也沒有說這個.

  5. 關(guān)于this和$(this)還要注意一點(diǎn)$('.abc').click(function(){});中this是dom元素, $(this)是jquery元素, 而寫插件的時候, 由于是擴(kuò)展prototype, 所以this就是對象實(shí)例, 即this就是jquery對象, $(this)還是jquery對象, 他們雖然不是同一對象, 但是內(nèi)容是完全相同的


查看完整回答
反對 回復(fù) 2019-03-19
  • 3 回答
  • 0 關(guān)注
  • 628 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號