状況:
ツールチップがページに表示されます。ファンシーボックスを開くとうまくいきます。そのファンシーボックスからajax投稿を行うとうまくいきます。しかし、私のツールチップはその派手なボックスでは機能しません。そして、私のajax投稿の後、それらは機能しません。
fancybox のコールバックで TipTip を再初期化しようとしました。
編集 タイトルの変更だから、最初のホバーではなく、投稿後の2番目のホバーで実行する方法を見つけました。
ここでいくつかの説明も見つけましたが、それでも問題は解決しませんでした。おそらくやり方が間違っています。
編集 2 ファンシーボックスの作業中のトゥーチップは afterShow のみを使用します。
変更点
これを $(function () { に追加して、initTipTip の代わりにこの関数を呼び出すようにしました。
$(".tooltip").live('mouseover', function () {
$(this).tipTip();
});
投稿を行い、ファンシーボックスを閉じる関数のコード。
var reservation = MakeReservation(); var oldDateSplit = $("#resDate").val().split('/'); var newDateSplit = $("#dateEditReservation").val().split('/'); var oldDate = new Date(oldDateSplit[2], oldDateSplit[1] - 1, oldDateSplit[0]); var newDate = new Date(newDateSplit[2], newDateSplit[1] - 1, newDateSplit[0]); var time = $("#txtTime"); $.ajax({ url: ResolveUrl('~/Reservation/CheckSettings'), data: "JSONString=" + reservation + "&hasJavaScriptMethod=" + true }).done(function (data) { if (data.length == 0 || oldDate.getTime() == newDate.getTime()) { $.fancybox.close(); var id = $("#reservationId").val(); $("#reservationList").load(ResolveUrl('~/Reservation/reservationList',
関数 () { initTipTip(); })); $("#reservationDetail").load(ResolveUrl('~/Reservation/DetailInfo', function () { initTipTip(); }), { 予約ID: id }); $("#reservationList").on("hover", " .tooltip", function () { $(this).tipTip(); }); } else { $(".errorDiv").removeClass("hidden"); $(".errorDiv").html(データ); $(".btnReservations").removeAttr('disabled'); }
});
NEW $(".tooltip").live('mouseover', function () { $(this).tipTip();
});
}
編集前と変わらず。
TipTip のコードの初期化
function initTipTip () {
$(".tooltip").tipTip();
}
ファンシーボックスのコード
function openFancy() {
$("a.inline").fancybox({
'type': 'ajax',
'afterShow': function () {
return initTipTip();
}
});
$("a.inlineBlockedDate").fancybox({
'type': 'ajax',
'ajax': { cache: false },
'afterShow': function () {
return initTipTip();
}
});
}