当方の解決していない質問の中の、フロントにフォーカスした質問です。
情報が足りないようでしたらController,Model等もコード追加します。
部屋番号というタブがありまして、タブをクリックするごとに部屋に入っているオブジェクトの属性(内容)を切り替え、マウスオーバーでツールチップ表示したい。という仕様です。
タブクリックするごとにオブジェクトの情報が書き換わることはデベロッパーツールにて確認済みだが、画面に反映されない。
reloadは初期の値に戻ってしまうので意味がない。reloadの使い方に問題アリ?
オブジェクトをリフレッシュして属性を更新する的機能はありませんか?
ちなみにTipperというjQueryプラグインを使ってツールチップ表示を表現しております。
コード最後のtipper()にてマウスオーバーでデータが表示されます。
以下コード内情報
・Number...部屋番号
・List1...部屋番号1に対応するデータをまとめたものをモデルより呼び出し
・#gP...名前が入っているオブジェクト#gP01~#gP24(これを更新したい)
・.P...#gP01~#gP24に付与しているクラス(ツールチップ表示に使用)
・data-title属性を書き換えています。
javascript
1(c# asp.net Index.cshtml) 2 if (Number == 1) 3 { 4 var List1 = {}; 5 @for (int i = 0; i < Model.List1.Count(); i++) 6 { 7 @:List1[@i] = '@Model.List1[i]'; 8 } 9 for (var index in List1) 10 { 11 var num = Number(index) + 1; 12 var id = "#gP" + (('00' + (num)).slice(-2)) 13 $(id).attr('data-title', (List1[index])); 14 } 15 $('.P') 16 } 17
このブロックがif(Number==5)まであります。
オブジェクトをリフレッシュする方法があれば、ご教授いただければ幸いです。
今回、オブジェクトをSVGファイルで管理していまして、htmlにつきましてはそのファイルを読み込むという形をとっています。ですので該当オブジェクトに関するSVGファイルの内容をご提示します。
初期表示時に上記コードを入れていますので初期表示時はgタブにdata-titleが入っています。
html
1 <g 2 class="P" 3 //クラス 4 id="gP4" 5 //ID 6 transform="translate(-0.5291751,-3.4683591e-6)"> 7 <rect 8 style="display:inline;fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0.07969642;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 9 id="P4_rect" 10 width="7.55512" 11 height="18.46151" 12 x="84.945335" 13 y="174.39366" /> 14 <text 15 xml:space="preserve" 16 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.60198593px;line-height:1.25;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26413709" 17 x="87.434586" 18 y="185.37314" 19 id="P4_text" 20 transform="scale(1.0001351,0.99986491)"><tspan 21 id="tspan1324-3-6-4-7-0-7" 22 x="87.434586" 23 y="185.37314" 24 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.60198593px;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26413709">4</tspan></text> 25 </g>
追記*****************************************************************
プラグインをdarktooltipというものに変更したところ切り替わることを確認できました。
しかし、切り替える前のツールチップが現データ表示のツールチップの後ろに出てしまうという事象が発生しています。イメージ画像追加。
メモリのことを考えると現時点のツールチップ以外は出したくないので、切り替える以前のツールチップのオブジェクトを破棄するのになにか良い方法はありますでしょうか。
私にはスキル不足で出来ませんが、プラグインを少しイジれば古いオブジェクトは消せるよー、っていう場合はご教授願います。
以下、プラグインのURLです。
リンク内容
あなたの回答
tips
プレビュー