Javascript jQuery-在ajax调用中保留单击事件
我正在编写一个脚本,当单击按钮时,ajax将检查用户是否登录,如果是,则在不离开页面的情况下执行一些操作。如果用户未登录,我想打开一个登录窗口弹出窗口。问题是,由于window.open不直接位于“click”事件下,它会被弹出窗口阻止程序阻止。如果我将window.open放在单击操作的正下方,它可以正常工作 有办法吗Javascript jQuery-在ajax调用中保留单击事件,javascript,jquery,Javascript,Jquery,我正在编写一个脚本,当单击按钮时,ajax将检查用户是否登录,如果是,则在不离开页面的情况下执行一些操作。如果用户未登录,我想打开一个登录窗口弹出窗口。问题是,由于window.open不直接位于“click”事件下,它会被弹出窗口阻止程序阻止。如果我将window.open放在单击操作的正下方,它可以正常工作 有办法吗 $('.myButton').click(function() { $.get(ajaxUrl, function(hastoken) {
$('.myButton').click(function() {
$.get(ajaxUrl, function(hastoken) {
if(hastoken == 1) {
// do stuff here
} else {
window.open("http://www.google.com");
// login
}
});
});
我建议使用fancybox:
好的,这是我想到的,非常感谢你。基本上,我将ajax调用包装在一个同步包装器中,使windw.open保持在正确的级别
$('.myButton').click(function() {
var hasToken = getResponse(url);
if(hastoken == 1) {
// do stuff here
} else {
window.open("http://www.google.com");
// login
}
});
function getResponse(strUrl) {
var strReturn = "";
jQuery.ajax({
url: strUrl,
success: function(html) {
strReturn = html;
},
async:false
});
return strReturn;
}
这可能会帮助你-这将打开一种灯箱
$('.myButton').click(function() {
$.get(ajaxUrl, function(hastoken) {
if(hastoken == 1) {
// do stuff here
} else {
var dialogDiv=$("<div></div>");
var $dialog = $(dialogDiv)
.load("Your Url to login form")
.dialog({
autoOpen: false,
title: "Message Box",
width: 900,
modal: true,
buttons: {
"Close": function() {
$(this).dialog("close");
}
}
});
$dialog.dialog("open");
return false;
}
}
});
});
解决办法很简单。不要使用弹出窗口。使用:很好的解决方案,但我需要通过instagram帐户加载外部URL登录。您可以使用iframe。
$('.myButton').click(function() {
$.get(ajaxUrl, function(hastoken) {
if(hastoken == 1) {
// do stuff here
} else {
var dialogDiv=$("<div></div>");
var $dialog = $(dialogDiv)
.load("Your Url to login form")
.dialog({
autoOpen: false,
title: "Message Box",
width: 900,
modal: true,
buttons: {
"Close": function() {
$(this).dialog("close");
}
}
});
$dialog.dialog("open");
return false;
}
}
});
});