我的链接如下:
<div id="demo-testpack">
<a href="#" class="user-not-loggedin">Demo Test Packages</a>
</div>
点击此链接后,我正在调用jQuery代码:
$(function() {
$("#user-popup-login").dialog({ autoOpen: false });
$( ".user-not-loggedin" )
.click(function() {
$( "#user-popup-login" ).dialog( "option", "width", 400 );
$( "#user-popup-login" ).dialog( "option", "modal", true );
$( "#user-popup-login" ).dialog( "open" );
return false;
});
弹出窗口在此功能后打开一些字段,弹出窗口中有一些链接。弹出窗口中的一个链接如下:
<div id="registern"><a href="#" class="register-btn">Register Now</a></div>
点击此链接后,我想执行以下代码,导致打开另一个弹出窗口。这个jQuery代码如下:
$(function() {
$("#create-user-form").dialog({ autoOpen: false });
$( ".register-btn" )
.click(function() {
$( "#create-user-form" ).dialog( "option", "width", 560 );
$( "#create-user-form" ).dialog( "option", "modal", true );
$( "#create-user-form" ).dialog( "open" );
return false;
});
$( ".get-start" )
.click(function() {
$( "#create-user-form" ).dialog( "option", "width", 560 );
$( "#create-user-form" ).dialog( "option", "modal", true );
$( "#create-user-form" ).dialog( "open" );
return false;
});
//This function is used to submit User Registration form
$('#user_registration_form').live('submit', function() {
$('.register').attr('disabled', 'disabled');
show_request('#registration_error');
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data:$(this).serialize(),
dataType: 'json',
success: function(response) {
$('.register').removeAttr('disabled', 'disabled');
var reg_error = response.reg_error;
if(reg_error=='yes') {
var error_msg = response.error_msg;
var dialog_title = 'Input Errors Found';
var dialog_message = error_msg;
$("#registration_error").html(error_msg);
} else {
$("#registration_error").html('');
$( "#create-user-form" ).dialog('close');
var suc_msg = response.suc_msg;
var dialog_title = 'Registered Successfully';
var dialog_message = suc_msg;
var $dialog = $("<div class='ui-state-success'></div>")
.html("<p class='ui-state-error-success'>"+dialog_message+"</p>")
.dialog({
autoOpen: false,
modal:true,
title: dialog_title,
width: 500,
buttons:{
'OK': function() {
$(this).dialog('close');
}
}
});
$dialog.dialog('open');
$('#user_registration_form')[0].reset();
}
}
});
return false;
});
});
现在我想要实现的是当用户点击上面的链接时,之前打开的弹出窗口应该关闭,只显示这个新的弹出窗口。我做了很多技巧但没有成功。任何人都可以帮我解决这个问题吗?先谢谢。
答案 0 :(得分:0)
我猜这是范围问题,因为在popup('open')
上对$( "#create-user-form" )
的调用是在一个不同的匿名函数中,而不是你试图关闭它的地方。尝试将调用打开并在同一个document.ready简写匿名函数中关闭它。
答案 1 :(得分:0)
我尝试过并尝试过,这可以通过以下代码片段实现。这对我来说真的很神奇。
if($( "#user-popup-login" ).dialog( "open" ))
$( "#user-popup-login" ).dialog( "close" );