關於 jQuery Easyui非同步載入tree的問題解析_jquery

來源:互聯網
上載者:User

想要實現從本地中載入json檔案,通過事件來動態插入到ul中時,遇到了一小bug

html中代碼是這樣的

<ul class="easyui-tree" id="tt"></ul>

js中的代碼

$(".next-menu:nth-child(1) a").click(function() {var $IDstr = $(this).attr("id"),$treeIDNum = parseInt($(this).attr("treeID")),jsonURL = "json/" + $IDstr + ".json",node;addAttr2Tree(jsonURL);changeImgSrc($treeIDNum); });});function changeImgSrc(nodeID){var node = $("#tt").tree('find', nodeID);if(node){$("#tt").tree('select', node.target);}if (node.attributes) {$("#img-box").attr("src", node.attributes.url);}}function addAttr2Tree(URL){$("#tt").tree({url: URL,method: "get",animate: true,lines: true});}

起初是想通過一個按鈕的點擊事件來動態載入tree的內容就是如上代碼,addAttr2Tree 是用來將點擊按鈕時對應的本地json資料加到html中的ul標籤中, changeImgSrc 是對tree節點的一些選中操作以及圖片的載入,但是無論怎麼調試,總是會出現一條錯誤

 

無法擷取attributes屬性!!!我反覆確認attributes是完整無缺的放在json檔案裡的而且總是第一次點擊按鈕時才會出現這種錯誤,第二次及其以後,這種錯誤是沒有的

後來我就想到,是不是因為json資料動態載入的速度比不上程式碼執行的速度?!

果然不出我所料!easyui中tree內建了一個方法onLoadSuccess 當資料成功載入時,才會執行一些操作
所以

$(".next-menu:nth-child(1) a").click(function() {var $IDstr = $(this).attr("id"),$treeIDNum = parseInt($(this).attr("treeID")),jsonURL = "json/" + $IDstr + ".json",node;addAttr2Tree(jsonURL);$("#tt").tree({onLoadSuccess: function(){changeImgSrc($treeIDNum);}});});

代碼改成這樣就可以了。

以上所述是小編給大家介紹的jQuery Easyui非同步載入tree的問題解析,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.