jQuery fadeToggle由于延迟错误而无法正常工作?
我有一个部门正在使用电子邮件通讯注册表。单击链接后,将显示此div,用户将看到一个文本框、按钮和一个选项复选框。提交电子邮件地址后,将触发以下代码:jQuery fadeToggle由于延迟错误而无法正常工作?,jquery,Jquery,我有一个部门正在使用电子邮件通讯注册表。单击链接后,将显示此div,用户将看到一个文本框、按钮和一个选项复选框。提交电子邮件地址后,将触发以下代码: $.post("/asynchronous/addEmail.aspx", {email: $(".emailPopupTextBox").val(), optin: thisOptIn }, function (data) { $(".emailText").hide(); $(".thankYouText").show(
$.post("/asynchronous/addEmail.aspx",
{email: $(".emailPopupTextBox").val(), optin: thisOptIn },
function (data) {
$(".emailText").hide();
$(".thankYouText").show();
$('.emailPopupBox').delay(800).fadeToggle(); });
返回时,div的内容被隐藏(复选框、按钮和文本框),并向用户显示欢迎消息。起初,这种情况发生得太快,电子邮件弹出窗口消失得太快。因此,我添加了.delay
,现在emailpopup div显示欢迎消息,运行delay和togglefade,但它并没有像应该的那样消失,而是很快消失并快速闪烁,并与感谢消息一起保持可见。如果我单击最初单击的链接以淡入淡出切换div以显示,它只会使div快速闪烁,但不会隐藏
编辑:在.post之后,.fadeToggle似乎不再正常工作。我正在追踪这个问题。你可以使用“慢”或通过延迟时间来缓解,而不是延迟 比如:
编辑
// You can change easingFactor to get the desired easing.
var easingFactor = 800;
$.post("/asynchronous/addEmail.aspx",
{email: $(".emailPopupTextBox").val(), optin: thisOptIn },
function (data) {
$(".emailText").hide(easingFactor);
$(".thankYouText").show(easingFactor);
$('.emailPopupBox').fadeToggle(easingFactor);
});
);
尝试一下,如果不将代码发布到JSFIDLE中,请尝试在承诺之后执行代码。此外,除非您正在使用数据,否则可能也不需要将其传递给函数
$.post("/asynchronous/addEmail.aspx",
{email: $(".emailPopupTextBox").val(), optin: thisOptIn }
}).done(function(){ //have the code execute after the promise is returned.
$(".emailText").hide();
$(".thankYouText").show();
$('.emailPopupBox').delay(800).fadeToggle();
});
你能在jsfidle上发布你的html或两者吗?好的,然后我们可以添加
持续时间
,而不是放松。我正在编辑应答,不管是哪种方式,它仍然存在,然后fadeToggle函数在发布后似乎不再起作用。是否可以显示您的实现的JSFIDLE.net?因此,您希望在emailtext和emailpopbox消失后,感谢文本可见?
$.post("/asynchronous/addEmail.aspx",
{email: $(".emailPopupTextBox").val(), optin: thisOptIn },
function (data) {
$(".emailText").hide();
$(".thankYouText").show();
$('.emailPopupBox').fadeToggle(800);
});
$.post("/asynchronous/addEmail.aspx",
{email: $(".emailPopupTextBox").val(), optin: thisOptIn }
}).done(function(){ //have the code execute after the promise is returned.
$(".emailText").hide();
$(".thankYouText").show();
$('.emailPopupBox').delay(800).fadeToggle();
});