2016-12-14 4 views
0

私はd3plus.jsで小さなアプリケーションを構築しようとしています。目的は、ネットワーク可視化を使用してPDFファイルを表す一連のノードを表示することです。ノードがクリックされると、pdfを表示するウィンドウが表示されます。d3plus/javascriptでopen.window()onclickイベントへのパスを渡すにはどうすればよいですか?

window.open()関数の使い方を理解しました。この関数をwindow.open()関数(fx "docs/somepdf.pdf")に直接書き込むと動作します。

私の問題は、sample_dataのパス文字列をwindow.open関数に渡すことです。

誰でも私がここで間違っていることを教えてもらえますか?

<script src="//d3plus.org/js/d3.js"></script> 
<script src="//d3plus.org/js/d3plus.js"></script> 

<div id="viz"></div> 

<script> 
    // create list of node positions 
    var sample_data = [ 
    {"name": "alpha", "size": 10, "path": "docs/Tan - 1999 - Text mining The state of the art and the challeng.pdf"}, 
    {"name": "beta", "size": 12, "path": ""}, 
    {"name": "gamma", "size": 30, "path": ""}, 
    {"name": "delta", "size": 26, "path": ""}, 
    {"name": "epsilon", "size": 12, "path": ""}, 
    {"name": "zeta", "size": 26, "path": ""}, 
    {"name": "theta", "size": 11, "path": ""}, 
    {"name": "eta", "size": 24, "path": ""} 
    ] 
    var connections = [ 
    {"source": "alpha", "target": "beta"}, 
    {"source": "alpha", "target": "gamma"}, 
    {"source": "beta", "target": "delta"}, 
    {"source": "beta", "target": "epsilon"}, 
    {"source": "zeta", "target": "gamma"}, 
    {"source": "theta", "target": "gamma"}, 
    {"source": "eta", "target": "gamma"} 
    ] 
    // instantiate d3plus 
    var visualization = d3plus.viz() 
    .container("#viz") 
    .type("network") 
    .edges(connections) 
    .size("size") 
    .id("name") 
    .tooltip(["name", "size"]).mouse({     
     "move": false,      // key will also take custom function 
     "click": function(){window.open("path", '_blank', 'fullscreen=yes')}  
    }) 
    .draw() 
</script> 

答えて

2

問題は、文字列としてではなくノードの属性として「パス」を提供ということです。同様の作業例を見てみましょう

.mouse({     
    "move": false, 
    "click": function(node){window.open(node.path, '_blank', 'fullscreen=yes')}  
}) 

http://jsfiddle.net/v1fvhpvx/14/

+0

おかげでたくさん

はあなたにmouse方法を変更してみてください!私はあなたがソフトウェア開発者であることを勉強している卒業生だと分かります。私はすぐに応用機械学習とテキストマイニングの博士号を取得することになり、ソフトウェア開発のための多くのアイデアがあります。将来のコラボレーションの出発点として考えやアイデアを交換することに興味がありますか? –

関連する問題