8
A
答えて
5
IはJavascript/SVG/d3jsのnoobのだが、私は、テキストの上にハイパーリンクされた透明の四角形を配置することで、これを "解決"、この回避策がbl.ockとして提供されています:。
nodeEnter
.append("a")
.attr("xlink:href", function (d) { return "http://www.example.com/flare/" + d.id; })
.append("rect")
.attr("class", "clickable")
.attr("y", -6)
.attr("x", function (d) { return d.children || d._children ? -60 : 10; })
.attr("width", 50) //2*4.5)
.attr("height", 12)
.style("fill", "lightsteelblue")
.style("fill-opacity", .3) // set to 1e-6 to make transparent
;
は、私が追加(
g
)要素の代わりに
clickable
styleと
add .on("click", click)
to the circleを追加してください。
これは機能しますが、クリック可能な矩形のサイズがラベルのテキストのサイズにならないという欠点があります。
私は本当に良いソリューションを楽しみにしていますので、あなたの質問に+1してください!
0
私はこのようなリンクに関するいくつかの情報、とノードにテキストの別の行を追加しました:パスとラベルを使用して、各ノードのために必要なデータを持っている
nodeEnter.append("a")
.attr("xlink:href", function(d) { return d.path; })
.append("text")
.attr("class", "clickable")
.attr("y", 16)
.attr("x", function (d) { return d.children || d._children ? -10 : 10; })
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.text(function(d) { return d.label; })
。
4
あなたがグローバル・ノード上のクリックハンドラを削除し、2つの異なるクリックハンドラを添付する場合は、次のテキスト
ため
- サークルの一つ
- 一つをあなたは異なる動作を持つことができますテキストをクリックするとその要素のスタイルを少し変えると、ハイパーリンクと同じように見えます。
ここに私のバイオリンをチェックアウト: http://jsfiddle.net/empie/EX83X/
クリックハンドラ
var nodeEnter = node.enter().append("g") .attr("class", "node") .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }); nodeEnter.append("circle") .attr("r", 1e-6) .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }).on("click", click);; nodeEnter.append("text") .attr("x", function(d) { return d.children || d._children ? -10 : 10; }) .attr("dy", ".35em") .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; }) .text(function(d) { return d.name; }) .style("fill-opacity", 1e-6) .attr("class", "hyper").on("click", clack); function clack(d) { alert(d.name); }
とCSS:
.hyper { color: blue; text-decoration: underline; } .hyper:hover { color: yellow; text-decoration: none; }
関連する問題
- 1. jQuery mobileは折りたたみ可能なセットにアニメーションを追加します
- 2. 折りたたみ可能なオートコンプリート
- 3. 折りたたみ可能なサイドバー/ナビゲーションメニュー
- 4. 折りたたみ可能/拡張可能なテーブルの動作
- 5. 折りたたみ可能リストビュー
- 6. 折りたたみ可能なUIViewを作成するには
- 7. 折りたたみ可能なデータグリッドを作成するには?
- 8. 折りたたみ可能なコンテンツのJquery Mobileアイコンの配置
- 9. javascript:Dreamweaverの折りたたみ可能なパネルにスプライするプラス/マイナスアイコンを追加する
- 10. 折りたたみ可能なサイズ変更可能なjQuery-uiタブウィジェット
- 11. 折りたたみ可能なブートストラップのナビゲーションバー
- 12. 折りたたみ可能なアイテムのListViewですか?
- 13. 折りたたみ可能なアイテムナビゲーション内のアイテム引き出し
- 14. 折りたたみ可能なメニューjavascriptの問題
- 15. フォーム内の折りたたみ可能なdivs
- 16. JQueryモバイルは折り畳み可能なコンテンツを動的に追加します
- 17. 折りたたみツールバーのレイアウトにRelativeLayoutを追加する
- 18. JQueryモバイル折りたたみ可能なヘッダーカラー
- 19. Drupal:テキストフィールドを折りたたみ可能にする
- 20. アニメーション折りたたみ式DIVにタイマーを追加
- 21. 折りたたみ可能な区切りをポストバック後に開く
- 22. CSS3トランジションの展開/折りたたみを追加する
- 23. d3.jsの折りたたみ可能/階層AND力向グラフ
- 24. jQuery UIアコーディオンが折りたたまれない(折りたたみ可能:true、アクティブ:false)
- 25. Eclipseで折りたたみ可能なアイコンを取り除く方法は?
- 26. 折りたたみ不可CollapsiblePanelExtender
- 27. Drupal 7 - 動的、折りたたみ可能、ナビゲーションバー/ブロック
- 28. 折りたたみ可能なブートストラップ、最初の要素を表示
- 29. Android - 折りたたみ可能な複数のアイテムを含むLinearLayout
- 30. HTMLページ内の折りたたみ可能なdivの位置合わせ
そうしない理由を、各ノードのクリックハンドラ関数は、すでにありますがハイパーリンクを使用して実行したいアクションを実行するために使用します。 –
まあ、クリックハンドラは例の円に付けられていて、クリックハンドラをテキスト要素に追加する方法はありません(afaik)ので、これは本当に有効な質問です。実際、私はこれを行う方法も分かりません。今、私はリダイレクトする 'click'ハンドラを使って2番目の要素を描画します。 – Marijn
円のクリックハンドラが展開/折りたたみに添付されています。 – Marijn