我遇到了即兴和实例的问题。我有两个即兴的实例,所以当我调用关闭第一个时,另一个也关闭。
有没有办法说关闭一个而不关闭另一个?
所以我猜你正在使用 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();
});
我在上面尝试了 BBonifield 的解决方案,但它对我不起作用。也许我做错了。我的情况要求我关闭当前显示的任何提示,以便显示下一个提示。为此,我使用了以下行:
$(".jqibox").remove();
这将立即破坏当前提示。
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”实例。