關於jquery外掛程式的this的問題

時間 2021-12-29 02:18:02

1樓:

top:getposi($(this)).top上邊的這句有問題,這裡的this可不是外掛程式裡怎麼獲取this的問題,你這裡還沒有進入的外掛程式內部,這裡只是呼叫外掛程式提供的prompt方法,傳進去乙個物件作為引數而已,這裡的this指向的是你這個表示式所處環境所指向的this。

如果你這個$("span")選取物件只有乙個的話你可以這麼做,修改上邊一句為:

top:getposi($("span")).top但是$("span")很顯然選擇的不是乙個元素,是一組,所以建議你做如下修改,比如乙個span元素想使用這個外掛程式,給它賦乙個id為span_1,可以這樣寫:

$("#span_1").prompt();

2樓:很牛**的牛

授之以魚不如授之以魚, 所以我決定告訴你遇到這類問題怎麼解決, 而不是僅僅告訴你這個問題的答案。

安裝firebug

所使用firefox開啟頁面

開啟firebug

在firebug中開啟指令碼選項卡, 找到你需要除錯的js在需要除錯的地方加上斷點

重新整理頁面, 程式走到斷點的時候檢視變數值

可以在firebug右邊檢視物件所有的屬性和方法。

辛苦手打, 希望採納, 若有疑問, 敬請追問。

3樓:匿名使用者

額,親,他那個this是span元素的。他那個是選取到了。所以那個this是獲取到了$("span")這個節點的.

如果你要用函式去弄那麼你的obj就應該這樣寫. var offset=$(""+obj+"").offset();大概的意思就是你這個這樣寫肯定會報錯。

因為根本沒有選取到節點怎麼可能計算得出left和top呢。

jquery外掛程式裡$(this)和this的問題

4樓:

$.fn.pluginname = function(opt){}

就是為jquery的prototype定義了函式, 這樣, 任何乙個jquery物件都可以使用這個成員函式, 這種寫法直觀明了, 你只要知道的就是$.fn = jquery.prototype = $.

prototype

$.fn.extend, 在jquery中重新定義了extend的使用方法, 如果只有乙個引數, 那麼就是擴充套件本身, 即$.

fn.extend({}), 就是用{}物件擴充套件$.fn, 也就是jquery的prototype, 這樣, 和上面那個就一樣了

兩者沒有什麼區別, 怎麼用看自己習慣和理解

還有一種寫法就是$.extend($.fn, {}); 這個extend不是乙個引數, 它作用是用後面的擴充套件前面的, 即用{}擴充套件了$.fn, 還是乙個意思

關於$(this)和this, 你關鍵還是要知道this表示的是什麼, 如果this是乙個dom元素, 那麼$(this)是乙個jquery元素, 如果this是乙個jquery元素, 那麼$(this)還是乙個jquery元素, 雖然你用==去判斷兩者是不同的, 但是他們內容都是一樣的, 這是我的經驗, 我並沒有去深入看過原始碼, jquery的api中似乎也沒有說這個.

關於this和$(this)還要注意一點$('.abc').click(function(){});中this是dom元素, $(this)是jquery元素, 而寫外掛程式的時候, 由於是擴充套件prototype, 所以this就是物件例項, 即this就是jquery物件, $(this)還是jquery物件, 他們雖然不是同一物件, 但是內容是完全相同的

5樓:匿名使用者

1. 這兩種本質上沒有區別, 第一種寫法適合單個plug開發. 比較直觀,第二種適合批量新增的plug

2. 關於 this 和$(this),這裡只有乙個可以肯定的,那就是$(this)一定是jquery物件,而this是什麼是要看上下文的.

6樓:阿剛燉蛋

1.這兩種方式的原理都是乙個,就是為jquery擴充套件成員函式。

具體區別,說不明白。

2.this和$(this)還是不同的,後者為jquery物件,前者要看具體的上下文,但大多數情況下為dom元素。

愚見愚見··

怎麼寫api介面的jquery外掛程式

自定義控制項 fn.這裡的 是控制項的名稱 options extend defaults,options 代表,如果options有的話就用options,或者使用default引數 呼叫方法 function function options 拿到api資料介面該如何怎麼寫到自己的html裡面 ...

jquery外掛程式開發可以找到工作嗎

目前jquery外掛程式基本已經很成熟了,只有不斷地更新它,而不是從頭到尾的再去寫乙個新的,所以目前jquery外掛程式一般有三種開發方式 1通過 extend 來擴充套件jquery2通過 fn 向jquery新增新的方法3通過 widget 應用jquery ui的部件工廠方式建立。jquery...

老式jQuery外掛程式還不能丟,怎麼相容

你可以試一下 jquery別名,在第乙個jquery引入 下面,寫下面這行 然後在這行 下面再引入其他版本的jquery。第一次引入的jquery,呼叫的時候寫 j id jquery.noconflict 這個是專門解決衝突的,往。要解釋這個問題,就必須先稍微解釋一下jquery外掛程式的機制 j...

關於jquery的學習,學jQuery之前是不是必須先學Javascript?

我是先學js再學jquery的.我覺得.在學jquery的時候需要學習js的基礎知識.要不你很難看懂一些東西.其實如果你如果學到js高階一點的知識.你完全可以懂得.jquery裡面的語法為什麼會這樣寫.而且這樣更有助於你去理解jquery中出現的一些語法.那樣也更有利於你去同時理解更多的js高階一點...

問個WOW關於外掛程式的問題,WOW 問下外掛程式的問題

沒有 未來的外掛程式,一般就3奧衝一彈幕,出buff的時候如果已經開讀就別中斷,中斷了當然浪費,等打完這發,再飛彈,這樣一點不浪費 wow 問下外掛程式的問題 動作條是bartender 4吧,傷害統計是skada,其他沒啥了。看地圖應該是用了 魔盒吧 關於wow外掛程式管理器的問題,請懂得人推薦一...