2010-09-14 43 views
0

我遇到了即兴和实例的问题。我有两个即兴事件,所以当我打电话关闭第一个时,另一个也关闭。即兴和实例

有没有什么办法可以说关闭一个而不是另一个?

回答

0

所以我猜你正在使用jQuery.prompt.close()?

我从来没有使用过即兴,但在我看来,它并不意味着支持同时打开的多个实例。你可以通过查看源代码来说明问题。

http://trentrichardson.com/Impromptu/scripts/jquery-impromptu.3.1.js

就个人而言,我建议你切换到一个更好的设计提示系统,但如果你真的想继续使用,你必须手动关闭它们。这是.close的内部结构()调用

$('#'+ $.prompt.currentPrefix +'box').fadeOut('fast',function(){ 
    $(this).remove(); 
}); 

哪里currentPrefix等于:

$.prompt('test', { prefix: 'the_prefix' }); 
$.prompt('test', { prefix: 'the_prefix2' }); 

所以,如果你想保持两个实例分开,你只需要使用两个单独的前缀和他们手动关闭他们,如:

$('#the_prefixbox').fadeOut('fast',function(){ 
    $(this).remove(); 
}); 
$('#the_prefix2box').fadeOut('fast',function(){ 
    $(this).remove(); 
}); 
+0

你有推荐更好的提示系统吗?我喜欢Impromptu的整洁外观。 – ericso 2012-10-26 04:27:54

0

我试过BBonifield的解决方案上面,但它没有为我工作。也许我做错了。我的情况要求我关闭当前显示的任何提示,以便我可以显示下一个提示。为此,我使用了以下行:

$(".jqibox").remove(); 

这将立即销毁当前提示。

0

http://trentrichardson.com/Impromptu/

即兴4.2

我试图通过BBonifield提供的代码和我仍然没有得到所期望的结果。两个提示都将关闭,或者第一个提示不会关闭(取决于执行顺序)。问题仍然是前面提到的前缀,但ID选择器不起作用。我不得不使用这个类。

$('.the_prefixbox').fadeOut('fast',function(){ 
    $(this).remove(); 
}); 
$('.the_prefix2box').fadeOut('fast',function(){ 
    $(this).remove(); 
}); 

此外,如果你使用的不是缺省的前缀,你需要在jQuery的impromptu.css您的前缀,以取代“JQI”的所有实例。