2011-09-14 11 views
2

JSONで生成されたjsTreeを使用してディレクトリ構造をナビゲートしようとしています。現在、select_nodeイベントをバインドして、選択したノードのパスを文字列として取得し、そのパスにlocation.hashを設定しています。この部分は実際にうまく動作します。私の問題は、select_nodeイベントが完了した直後に、ブラウザの履歴を明らかに破棄し、ユーザーを「インデックス」ページに戻すように、URLからハッシュを完全に削除することです。ここに私の現在のコードがあります。これを防ぐ方法を教えてください。jsTreeはURLからハッシュを削除します

var path = '/' + $(this).jstree('get_path', data.rslt.obj, false).join('/') 

おそらく、ハッシュが残っていることを確認するために

var path = '/' + $(this).jstree('get_path', data.rslt.obj, false).join('/') + location.hash 

を使用することができます。

$('#projects').jstree({ 
    core: { 
    animation: 0 
    }, 
    plugins: ["themes", "json_data", "ui"], 
    themes: { 
    theme: "gm", 
    dots: false 
    }, 
    json_data: { 
    ajax: { 
     url: '/json/projects', 
    }, 
    progressive_render: true 
    } 
}).bind('select_node.jstree', function(e, data){ 
    var path = '#/' + $(this).jstree('get_path', data.rslt.obj, false).join('/') 
    window.location.hash = path 
}) 
+0

私はこれも知りたいです。私は明日の仕事で同じ問題を抱えています:) –

答えて

0

私は、問題のコードはこれだと思います。

+0

申し訳ありませんが、私の例ではタイプミスがありました。 'path'は実際に' window.location.hash'が実際にうまくいくように設定されているはずです。問題は、直後にjstreeの何かがそれを何も返さないということです。 – wdh

+0

代わりにlocation.searchを使用できますか?多分jstreeはlocation.hashの使用を必要とします –

+0

私はハッシュに基づいてディレクトリリストを引き出すためにajaxを使用していますので、できません。私は、jstreeがハッシュを自動的に迷惑にならないようにする必要があります(実際のリンクがないので、現在の設定では絶対に何もしません)。 – wdh

関連する問題