
リンクをマウスオーバーしたとき、リンクのhrefの値を取得して吹き出ししたいHTMLのidを割り出します。そしてhtml()メ
ソッドでasideタグ以下の要素を取得し、それをtooltip用プラグインであるballoonのcontents属性にセットして動的に表示
するHTMLを変えたいと思っています。(アイデア1)では一時変数contentにmouseoverイベント時に取得したhtmlを格
納し、それをbaloonで表示したいと思いました。しかしこのメソッドチェーンでは動いてくれません。(アイデア2)では
balloon実行時に無名関数を利用しquotelinkクラスからhrefを取得したいと思ったのですが、$(this)ではquotlinkクラスオ
ブジェクトが取得できません。
みなさんのお知恵をお貸しください。よろしくお願いします。
■画面に吹き出し表示したい箇所のHTML
<aside id="q56" style="padding-top: 40px; margin-top: -40px;">
<div id="reply" >
<div>
<span class="filecaption">1390245737775.jpg (75KB, 661x720)</span>
<a id="reply_image" href="/uploads/fullsize/1390245737775.jpg" target="_blank">
<img src="/uploads/thumbs/1390245737775.jpg" alt=""></a>
<blockquote class="postMessage">
たたたたああああああああああああああ<br>
</blockquote>
</div>
</div>
</aside>
■マウスオーバーする箇所
<a href="/threads/international/22#q56" id="c56" class="quotelink">56</a>
■javascript:
(アイデア1)
var content;
$('.quotelink')
.on("mouseover", function () {
var link = $(this).attr("href");
var num = String(link).split("#");alert('num = ' + num);
content = $("aside#" + num[1]).html();
content = content.replace(/\r\n/g, "");//IE
content = content.replace(/\n/g, "");//Firefox
}).balloon({
showDuration: 0,
hideDuration: 0,
minLifetime: 0,
tipSize: 0,
offsetY: 50,
contents: content,
css: {
opacity: "1.0"
}
})
});
(アイデア2)
var content;
$('.quotelink').balloon({
showDuration: 0,
hideDuration: 0,
minLifetime: 0,
tipSize: 0,
offsetY: 50,
contents: function() {
var link = $(this).attr("href");
var num = String(link).split("#");alert('num = ' + num);
content = $("aside#" + num[1]).html();
content = content.replace(/\r\n/g, "");//IE
content = content.replace(/\n/g, "");//Firefox
alert('content = ' + content);
return content;
},
css: {
opacity: "1.0"
}
})
});
No.1ベストアンサー
- 回答日時:
$('.quotelink').ballon() の瞬間に別のイベントハンドラを割り込ませcontentsを取得投入するwwww
何という瞬間芸
aタグなんか、javascriptでballon定義した瞬間にどっか失せてますよ。
jquery.baloon.js のドキュメントを読むと、自力でイベント処理して汎用メソッド呼べと書いてある。
$('.quotelink').on("mouseover", function () {
var link = $(this).attr("href");
content = $("aside#" + String(link).split("#")[1]).html();
content = content.replace(/\r\n/g, "");//IE
content = content.replace(/\n/g, "");//Firefox
$(this).showBaloon({ contents:content });
});
この回答への補足
shockatz さん ご返答ありがとうございます。
早速、教えていただいたロジックを試したところ最初にマウスオーバーしたときは画面表示されずに2回目以降にマウスオーバーしたら画面に表示されました。デバッグで試したら(cotent の内容を取得した後にalertで内容を表示)contentの内容が一回目にマウスオーバーしたときは取得できず、2回目、3回目とマウスオーバーすると2回、3回と乗算的に画面表示(alertでの表示)されました。
最初にマウスオーバーしたときにポップアップ表示するにはどうすればよいのでしょうか?
shockatzさん ありがとうございました。 補足で表示できない旨をお伝えしましたが、showBallonメソッドでヒントを頂き、無事実装に成功いたしました。
ありがとうございました。感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
クリックで色変更後に既に変更...
-
IFRAMEの表示/非表示を切り替え...
-
バッチファイルでカウントアッ...
-
<Div>の中の要素の数を調べる
-
removeAttribute()メソッドで削...
-
取得した要素がインライン要素...
-
click範囲の指定
-
テキストエリア内の一部の文字...
-
テキストノードを非表示にでき...
-
classの中の<a>タグにidを追加
-
createElementで作成した要素を...
-
背景色を透明化
-
HTMLとJavaScriptで作ったタイ...
-
折りたたみ式JavaScriptをcheck...
-
1枚の画像をクリックすると複数...
-
WEBページ立ち上げ時に1回のみ...
-
文字をクリックしたら別の文字...
-
スクロール可能なチェックボックス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
removeAttribute()メソッドで削...
-
IFRAMEの表示/非表示を切り替え...
-
VBAのことについて教えてくださ...
-
javascriptでpostした値が取得...
-
プルダウンメニュ 展開時にずら...
-
removeEventListenerについて
-
クリックすると隠れたテキスト...
-
プルダウンとチェックボックス...
-
指定字数以降隠す
-
自働生成される<div>タグに連番...
-
テキストボックスに入力された...
-
背景色を透明化
-
特定のものにだけスクリプトを...
-
ホームページ(デフォルトペー...
-
テキストエリア内の一部の文字...
-
隣のフレームの中のスタイルを...
-
java折りたたみタグを複数設置...
おすすめ情報