jquery tools Tooltip を使用してツールチップを作成しています。
このようなツールチップを作成しました...クリックしたときにのみ開き、閉じるボタンを押すと閉じるツールチップです(「closeTooltip」イベントをトリガーします)。
$('#request_button').tooltip({
opacity: 1.0,
position: 'top center',
offset: [10, 0],
events: {
def: "openTooltip, closeTooltip",
tooltip: "undefinedEvent, closeTooltip"
},
onBeforeShow: function() {
alert("I will hide the existing tooltips first");
$('#request_button').trigger('closeTooltip');
},
onShow: function() {
alert("I have shown the new tooltip");
},
onBeforeHide: function() {
alert("I have started hiding existing tooltips");
},
onHide: function() {
alert("I have hidden all existing tooltips");
},
tip: "#tooltip_contents" // I am using same div for multiple trigger elements
});
このようにツールチップを開閉しています..
$('#request_button').click(function() {
$(this).trigger('openTooltip');
});
$('#close_tooltip').click(function() {
$('#request_button).trigger('closeTooltip');
});
複数のトリガー要素が定義されているため、開いているツールチップをすべて閉じる必要があります。onBeforeShow() イベントでこれを試したところ、思い通りに動作しませんでした。
警告メッセージは次の順序で表示されました...
- 最初に既存のツールチップを非表示にします
- 新しいツールチップを表示しました
- 既存のツールチップを隠し始めました
- 既存のツールチップをすべて非表示にしました
これが行うことは、現在のツールチップも非表示にすることです。欲しい順番は…
- 最初に既存のツールチップを非表示にします
- 既存のツールチップを隠し始めました
- 既存のツールチップをすべて非表示にしました
- 新しいツールチップを表示しました
どうすればこれを達成できますか?ここで何が間違っているのですか?