WordPress以安全模式運送jQuery,這非常棒,但我必須使用的第三方腳本使用$
別名,因此只有該腳本有別名$
到jQuery
的方法嗎? (因爲它是第三方不能編輯腳本)特定於腳本的jQuery別名
回答
包裹插件的初始化在
IIFE
(function($){
$('.some').pluginUsingDollarAsJQuery();
})(jQuery)
由於每help pages for plugin authorship:
$變量在JavaScript圖書館中非常流行es,如果你使用jQuery另一個庫,你將不得不讓jQuery使用$ with jQuery.noConflict()。但是,這會破壞我們的插件,因爲它是在假設$是jQuery函數的別名的情況下編寫的。爲了與其他插件很好地工作,並且仍然使用jQuery的$別名,我們需要把我們所有的代碼立即調用函數表達式裏面,然後通過功能jQuery和
這基本上名稱的參數歸結爲誰寫了你使用的插件沒有做對。
寫這樣的插件:
$.fn.doSomething = function(){
// whatever
}
能做到不與noConflict模式下使用jQuery任何兼容。它應該被包裹在一個IIFE這樣的:
(function($){
$.fn.doSomething = function(){
// whatever
}
})(jQuery)
如果你的插件是前者的風格,它拋棄了。
是的,它不能像那樣工作。我想很多人誤解了這個問題。 –
@ Karl-AndréGagnon - 我沒有誤解這個問題 - 我認爲有些東西可行,那不是。無論如何,答案更新。 – Jamiec
「如果你的插件是前者的樣式,請將其丟棄。」這是一個非常好的建議,已經投票,但我不能接受答案,因爲它實際上並沒有解決。 –
Jamiec's answer是應該在訪問代碼時應該使用的乾淨解決方案,但是如果您無法訪問代碼,則會有骯髒的解決方案。
在加載腳本之前,您可以將$
重新指派給jQuery。所以當腳本初始化時,$ === jQuery
。
要做到這一點時,腳本是內嵌在DOM,只需打開腳本標籤爲之前的重新分配:
<script>$=jQuery;</script>
<script src="external_script"></script>
如果動態加載腳本(例如:jQuery.getScript
),你可以之前重新分配調用異步函數:
window.$ = jQuery;
jQuery.getScript('external_source');
警告:這種方法可以打破你的腳本,如果window.$
在別處使用。如果腳本加載了異步,那麼它也可能不起作用,同時,另一個腳本將$
重新分配給其他內容。
- 1. 在腳本#指定的jQuery別名
- 2. PHP腳本中特定行的PHP別名?
- 3. 特定於PHP頁面的腳本和樣式不被識別
- 4. Bash別名不適用於Python腳本
- 5. 用於查找文件名中特定單詞的Linux腳本
- 6. ?關於特定項目的DOM腳本
- 7. 腳本中的別名
- 8. shell腳本的別名
- 9. 特定於操作的JS腳本就像查看腳本
- 10. 使運行腳本別名
- 11. bash腳本和別名
- 12. 使別名腳本失敗
- 13. 用於刪除符合特定命名約定的舊備份的SQL腳本?
- 14. jQuery腳本 - 用特定腳本切換打開/關閉?
- 15. 關於JQuery腳本
- 16. 獲取magento中根類別的特定/特定類別名稱
- 17. 如何使特定JS腳本僅適用於特定頁面
- 18. 與特定的PHP腳本
- 19. 需要爲Linux腳本相當於AIX腳本 - 特別是find命令
- 20. 用於在特定類別
- 21. 基於ML的域特定命名的入口識別(NER)?
- 22. 腳本中的全球bash別名
- 23. shell腳本中的別名幫助
- 24. 處理特定於目標的腳本(例如用戶,登錄名和權限)
- 25. 我的腳本如何更改特定字體(對於特定的類)?
- 26. 確定文件位置是否是bash腳本中的別名
- 27. shell腳本+ IP地址與別名之間的恆定空格
- 28. 如何爲Python腳本定義系統範圍的別名?
- 29. 選擇*與特定的別名[語法]
- 30. Powershell功能腳本:functionname做什麼?特別是腳本:部分
第三方腳本,不考慮重寫'$'的可能性(當它失敗時)不是一個好腳本... –
@ Karl-AndréGagnon我同意,但最糟糕的部分是:不幸的是它是來自Payza整合API –