我想隐藏注册弹出窗口并通过单击注册模式上的“登录”链接来显示登录弹出窗口。哪个工作正常但是问题是setTimeout在每1秒后保持打开登录弹出窗口,而我想暂停1秒钟而只执行一次。 我使用过clearTimeout(),它甚至没有打开登录弹出窗口。 请指导我。提前致谢! 这是我的剧本:
var Tid;
jQuery(document).ready(function ($){
//trigger login link on signup popup
jQuery("#register-form #login-modal a").attr("href",
"javascript:void(0);");
jQuery("#register-form #login-modal").click(function ()
{
jQuery("#register-modal-wrap").find(".mfp-
close").trigger("click");
openLoginModal();
});
function openLoginModal(){
Tid=setTimeout("jQuery('#login-modal a').trigger('click')",1000);
//clearTimeout(Tid);
}
});
答案 0 :(得分:0)
正如@Thilo所指出的那样,在代码中有一个递归触发click事件导致openLoginModal()函数被一次又一次地调用,唯一的办法就是确保openLoginModal()函数只被调用一次。这应该可以解决问题。
var Tid;
jQuery(document).ready(function ($){
//trigger login link on signup popup
jQuery("#register-form #login-modal a").attr("href",
"javascript:void(0);");
jQuery("#register-form #login-modal").click(function ()
{
jQuery("#register-modal-wrap").find(".mfp-
close").trigger("click");
if(typeof Tid === 'undefined'){
Tid = setTimeout(openLoginModal,1000);
}
});
function openLoginModal(){
clearTimeout(Tid);
jQuery('#login-modal a').trigger('click');
}
});