自訂函數命名為 $,直接覆蓋了 jQuery 的 $ 別名,導致後續 jQuery 代碼失效。
function $() { ... } // ❌ 覆蓋 window.$ (jQuery)
$('#elem').hide(); // 報錯:$ is not a function
function myUtil() 或 function $$()。<script src="jquery.js"></script>
<script>
var $j = jQuery.noConflict(); // 釋放 $ 所有權
$j('#elem').hide(); // 使用 $j
// 自訂 $ 函數此後可用
function $() { ... }
</script>
(function($) {
// 此處 $ 安全指向 jQuery
$('#elem').hide();
})(jQuery);
// 外部自訂 $ 不受影響
function $() { ... }
$ 或 jQuery 變數。ES Modules / Webpack 等模組化工具,天然隔離作用域。noConflict(true) 完全釋放。核心:重命名自訂函數避免佔用 $,或用 noConflict/IIFE 隔離作用域。