0
我的lightview模式在Ajax请求后保持关闭状态。这意味着当我发出一个Ajax请求并且之后,我会为弹出窗口调用一个lighview,弹出窗口会在加载弹出页面后马上关闭。如果我没有发出Ajax请求,弹出窗口就会正常工作,除非用户完成,否则不会关闭。JavaScript - Lightview Modal保持关闭
任何人都可以帮我解决我做错了什么吗?以下是模拟我的问题的代码。
<script language="JavaScript" type="text/javascript">
Event.observe(
window,
'load',
function (event) {
$('ajaxBtn').observe(
'click',
function(event) {
ajaxCall('ajax.png');
});
});
function ajaxCall(img_url)
{
Lightview.show({ href: img_url, rel: 'image', options: { width: 100, height: 100, autosize: false, keyboard: true, overlayClose: false, menubar: false } });
document.observe("lightview:opened", function(event)
{
new Ajax.Request(
'ajax_post.html',
{
method: 'POST',
parameters: $('frmName').serialize(true),
onComplete: ajaxSuccess,
onFailure: ajaxFailed
});
});
}
function ajaxSuccess()
{
Lightview.hide();
alert("Ajax call success");
}
function ajaxFailed()
{
Lightview.hide();
alert("Ajax call failed");
}
</script>
<form accept-charset="utf-8" name="frmName" id="frmName" method="post">
Name: <input type="text" name="full_name" id="full_name" value="" />
<input type="hidden" name="id" id="id" value="1" /><br />
<img id="ajaxBtn" src="ajaxBtn.jpg" style="cursor: pointer;" title="Ajax Call" alt="Ajax Call" border="0" />
<a href="pop-up.html" class="lightview" title="pop-up :: :: topclose: true, width: 600, height: 180">pop-up window</a>
</form>
在此先感谢。
是的,我有,但是,然后不关闭Lightview.show()打开的模式弹出。基本上,我希望模态先被完全加载,然后是人ajax调用,然后关闭打开的模态。 – 2011-02-22 21:57:11
@MercuryTerminal:啊,这是否发生在第一次通话(ajaxBtn点击)?还是以下点击?你可以尝试删除“document.observe(”lightview:打开“,功能(事件){”和“});”但是ajax调用(新的Ajax.Request)仍然存在,只需删除document.observe部分即可。 – srcastro 2011-02-23 02:07:00