在我使用tree拖拽時(shí)總是失敗,控制臺輸出了很多錯(cuò)誤。
經(jīng)過跟蹤分析發(fā)現(xiàn)這是一個(gè)由于特殊配置導(dǎo)致的錯(cuò)誤。
原先錯(cuò)誤的代碼如下:
$('#tree').tree({//省略其他loadFilter: function(data, parent){return data.rows;}});由于我后臺返回值并不是一個(gè)直接適合tree使用的數(shù)據(jù),需要從中取出rows才可以,所以就有了這段代碼。
而 EasyUI 出錯(cuò)的原因就在于當(dāng)拖動時(shí),拖動方法中仍然會調(diào)用loadFilter方法,如下圖代碼:

EasyUI在前面的處理中,已經(jīng)將data處理為了數(shù)組,所以當(dāng)調(diào)用loadFilter方法時(shí),由于返回的data.rows,肯定是undefined,而不是數(shù)組,因此在后續(xù)對data操作時(shí)就會出錯(cuò),導(dǎo)致拖動失敗,而且整棵樹都出現(xiàn)問題。
解決的方法也很簡單,將loadFilter方法改為可以適配默認(rèn)情況即可:
loadFilter: function(data, parent){if($.isArray(data)){return data;}return data.rows;}主要就是判斷如果data是個(gè)數(shù)組就直接返回,否則仍然返回我自己的data.rows。
以上所述是小編給大家介紹的jQuery EasyUI tree 使用拖拽時(shí)遇到的錯(cuò)誤小結(jié),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答