何とか動作していたコードがありましたが、スクリプトを書き直そうとすると突然ポップアップウィンドウのXとYの位置が間違っていました。 これが最初の問題です。jQueryのポップアップウィンドウ
次の問題は、このコードがかなり悪いことです。なぜなら私はポップアップウィンドウを表示するときにいつもいくつかのバグがあるからです。説明するのは難しいですが、コードをよく見てみるとよいでしょう。
主なものは次のとおりです。マウスの動きが起きたときに要素を持っている(画像を言う)マウスがウィンドウの上にあるときにウィンドウを表示する必要があります。別の言葉 - 私はそのウィンドウからいくつかの情報をコピーする必要があります。だから私はコードを書いたが、それはかなりバグで、バグ以外はXとYの位置が間違っている。見て:
$(".infoBox").die();
$(".infoBox").live('mouseover mouseout', function(e) {
if (e.type == 'mouseover') {
$("#infoBox").html("");
$("#infoBox")
.css('top', (e.pageY - 10) + 'px')
.css('left', (e.pageX - 20) + 'px');
setTimeout(showInfoBox, 500);
ID = $(this).attr('id');
if ($(this).hasClass("companyInfo")) { showCompanyInfo(ID); }
if ($(this).hasClass("userInfo")) { showUserInfo(ID); }
} else {
setTimeout(hideInfoBox, 1000);
}
});
function showInfoBox() {
$("#infoBox").fadeIn('slow');
}
function hideInfoBox() {
if (mouse_in_infoBox == 0) {
$("#infoBox").hide();
$("#infoBox").html("");
}
};
$("#infoBox").hover(
function() {
mouse_in_infoBox = 1;
},
function() {
mouse_in_infoBox = 0;
setTimeout(hideInfoBox, 1000);
}
);
をだから私は、例えば
<img class="infoBox" id="company_id_which_was_dynamically_added">
とshowCompanyInfoは、私が得た私のindex.phpで
"$("infoBox").html(...)".
が持っているしている、とCSSは次のとおりです。
#infoBox {
display: none;
position: absolute;
border: 1px solid #CDFF00;
background-color: #1C1F1A;
color: #CCCC33;
padding: 10px;
z-index: 5;
max-width: 400px;
min-width: 50px;
min-height: 50px;
}
ああ、はい、別の質問はライブとdに関連していますすなわち方法。私のサイトにはたくさんのタブがあり、私がそれらを切り替えるときに、いくつかの要素に.click/.hoverのようなハンドラーを置いていました。そして私のタブはajaxを使うので、ここでは.liveメソッドを使用します。しかし、タブを何回か切り替えると、いくつかのハンドラが同じになります。たとえば、ライトボックスを表示すると、いくつかのライトボックスが表示されます。今、私は.live()の前に.die()を使用していますが、これは良い解決策ではないようです...
私はこれらのポップアップウィンドウを何度か作ろうとしたので、常にいくつかのバグがあります。上のコードでは、マウスをクリックすると空のウィンドウやその他の悪いものが表示されます。
ありがとうございます!
簡単なご提案です。それは適切ではないかもしれません。しかし私は.position()を使い、あなたが望む方向をつかむでしょう。現時点であなたはCSSの上と左をつかんでいます。彼らが絶対的に配置されている場合、これは問題ありません。しかし、ポジションは即座にそれを行います。 –