在使用 jQuery EasyUI 的 combotree 組件時,頁面加載腳本執行到 $('#Area').combotree({...}) 即停止,後續代碼不再執行,控制台無明顯報錯。典型代碼如下:
$(function () {
$('#Area').combotree({
url: 'Account/AccountDataInterface.ashx?method=getXzqyh',
required: true,
checkbox: true,
multiple: true,
cascadeCheck: true
});
});
最常見的導致「執行到此處停止」的原因有三點:
$('#Area') 在當前 DOM 中找不到 id="Area" 的元素。可能原因:
<head> 中且無 $(document).ready 包裹)。驗證方法:在腳本前加 console.log($('#Area').length),若輸出 0 則確認未找到元素。
combotree 依賴 jquery.easyui.min.js 及對應 CSS。若引入路徑錯誤、版本不匹配、或在 jQuery 之前引入 EasyUI,會導致 $.fn.combotree 未定義,調用時拋出 TypeError: $(...).combotree is not a function,中斷執行流。
正確引入順序:
<link rel="stylesheet" href="themes/default/easyui.css">
<link rel="stylesheet" href="themes/icon.css">
<script src="jquery.min.js"></script>
<script src="jquery.easyui.min.js"></script>
若 url 指向的接口返回非標準 JSON、或包含 BOM 頭、HTML 錯誤頁面,EasyUI 解析數據時可能拋出異常,導致初始化中斷。建議在瀏覽器 Network 面板檢查該請求的響應內容,確保為合法 JSON 格式(如 {"data":[...]} 或直接數組 [...])。
<input id="Area" class="easyui-combotree"> 或同等元素。$(document).ready(function(){ ... }) 或 $(function(){ ... }) 中(已做)。combotree is not a function、Unexpected token 等)。url 請求狀態碼(200?)及響應內容。$('#Area').combotree({ url: '...' }) 僅保留 url 測試是否正常渲染。class="easyui-combotree" 並通過 data-options 配置屬性,減少 JS 代碼耦合。$.parser.parse() 執行後調用,或手動觸發 $('#Area').combotree('reload') 重新加載。通過以上排查,90% 以上的「執行到第一句停止」問題可定位為選擇器未匹配或 JS 引入順序錯誤。耐心檢查 DOM 就緒時機與腳本加載順序,即可快速解決。