事情是这样的:
我想要一个jQuery函数,它允许我在以下任一情况下附加一个固定的弹出窗口:
- A.)发生 mouseenter,之后 popUp 在随后的 mouseleave 上淡出并被删除,或者;
- B.)当某个脚本特别调用它时,它会在指定时间后淡出并被删除。
应该不会太难,我想。然而,因为涉及到一个 fadeIn/Out(),所以有可能在第一个 popUp 真正消失之前调用另一个 popUp 的创建,从而以各种方式使整个事情变得混乱。那么问题来了:我如何设计一个函数来创建和管理其创建的元素而不会混淆它们?
现在,我想我会在附加的弹出窗口的 ID 中添加一个变量 ID 值,以便淡入/出调用仅适用于正确的调用,但这并不像我想要的那样工作,因为当 var增加var++;该函数永远不会操作 ID 值低于该 var 的 popUp。
到目前为止,我已经创建了以下格式的东西,我希望它能够正确说明我的想法:
var p1 = 0;
var p2 = 0;
function popUp(text, duration, targetLMN){
if (duration && !(targetLMN)) {
$('body').append('<div id="popUpDur_'+p1+'" class="popUp" style="display:none;"> text </div>');
// the following lines mess up as soon as another
// popUp is created before the last one is gone.
$('.popUpDur_'+p1).fadeIn(t).delay(duration).fadeOut(t, function(){
$('.popUpDur_'+p1).remove();
});
p1++;
}
else if (targetLMN && !(duration)){
$(targetLMN).mouseenter(function(){
$('body').append('<div id="popUpTar_'+p2+'" class="popUp" style="display:none;"> text </div>');
$('#popUpTar_'+p2).fadeIn(t);
});
$(targetLMN).mouseleave(function(){
$('#popUpTar_'+p2).fadeOut(t, function(){
$('#popUpTar_'+p2).remove();
});
});
p2++;
}
}
我就是想不通!
在此先感谢,所以!