我已經看過這個question了,我已經嘗試瞭解決方案(使用tree.reload()),但它不適用於我。我有一個使用initAjax()在doc上初始化的樹,並且我試圖使用不同的值重新加載樹,以改變選擇輸入。基本上這樣的:試圖用新數據重新加載/刷新dynatree
$(document).ready(function(){
// global variables
var myVal = 'initial value';
// initialize tree
$('#tree').dynatree({
persist: false,
initAjax: {
url: 'getMyStuff.cfc',
data: { myParam: myVal }
},
... more params
)};
// select change handler
$('#mySelect).change(function(){
var tree = $('#tree').dynatree('getTree');
myVal = $(this).find('option:selected').val();
tree.reload();
)};
)};
的問題是,這棵樹不斷得到使用相同的參數重新加載...我可以在那個被髮送的參數是相同的每次控制檯的網絡選項卡上看到,即使我已經證實,我正在瞄準正確的元素,並且正在爲變化獲得正確的價值。
我試圖改變的變量的範圍,我試圖放置dynatree選項在一個單獨的變量,我試圖調用
$('#tree').children().remove();
$('#tree').dynatree(treeoptions);
的變化()函數中,我試圖調用tree.initialize()(是的,我知道它是一個構造函數),我試過tree.redraw(),我已經嘗試在調用reload()之前單獨設置initAjax選項,並且卡住了。
任何想法?
在這一點上,我決定要做的唯一事情就是把樹初始化放入一個函數中,當改變select選項時,吹掉樹(包括它的父div)並重建它。如果確實沒有其他方法可以用新數據重建樹,這與我與其他小部件的經驗背道而馳,我會感到驚訝。
您可能沒有一棵樹類的dynatree DIV所以最好由ID $(「#樹」) – Spre3