Экспромты и инстансы
У меня проблема с экспромтом и инстансами. У меня есть два случая экспромта, поэтому, когда я звоню, чтобы закрыть первый, другой тоже закрывается.
Есть ли способ сказать, чтобы закрыть одно и нет другого?
3 ответа
Итак, я предполагаю, что вы используете 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, и все еще не получал желаемых результатов. Либо обе подсказки закроются, либо первая не закроется (в зависимости от порядка выполнения). Проблема была все еще префиксом, как предлагалось ранее, но селектор идентификаторов не работал. Я должен был использовать класс.
$('.the_prefixbox').fadeOut('fast',function(){
$(this).remove();
});
$('.the_prefix2box').fadeOut('fast',function(){
$(this).remove();
});
Также, если вы используете префикс, отличный от значения по умолчанию, вам необходимо заменить все экземпляры jqi на префикс в jquery-impromptu.css.