即興とインスタンスに問題があります。私は即席のインスタンスを 2 つ持っているので、最初のインスタンスを閉じるように呼び出すと、もう 1 つのインスタンスも閉じます。
一方を閉じて他方を閉じないと言う方法はありますか?
だから私はあなたが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' } );
したがって、2つのインスタンスを分離したい場合は、2つの別々のプレフィックスを使用するだけで、次のように手動で閉じます。
$('#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();
});
また、デフォルト以外の接頭辞を使用する場合は、「jqi」のすべてのインスタンスを jquery-impromptu.css の接頭辞に置き換える必要があります。