Autocompliter событие hide

9 views
Skip to first unread message

Avol

unread,
Mar 15, 2012, 1:38:12 PM3/15/12
to RightJS Для Бородатых Хакеров
Событие hide почему-то ни когда не срабатывает (на закрытии также
происходит show).

var autocompliter = new Autocompleter( el_input, {
url: '/search/'
});

autocompliter.on({
show: function(event)
{
console.log( 'show', event );
},
hide: function(event)
{
console.log( 'hide', event );
},
update: function(event)
{
console.log( 'update', event );
},
load: function(event)
{
console.log( 'load', event );
},
select: function(event)
{
console.log( 'select', event );
},
done: function(event)
{
console.log( 'hide', event );
}
});

Avol

unread,
Mar 15, 2012, 1:41:47 PM3/15/12
to RightJS Для Бородатых Хакеров
Т.е. в конце


done: function(event)
{
console.log( 'done', event );
}
});

конечно же -- копировал пропустил.

С событием done, как и с другими, всё в порядке, а вот hide нету.

Avol

unread,
Mar 15, 2012, 1:48:09 PM3/15/12
to RightJS Для Бородатых Хакеров
Видимо здесь ошибка:


/**
* Hides the element
*
* @param String fx-name
* @param Object fx-options
* @return Element this
*/
hide: function(fx_name, fx_options) {
this.constructor.current = null;
return Toggler_toggle(this, 'show', fx_name, fx_options);
},


Передаётся "show", а должно быть, судя по всему, "hide".

Nikolay Nemshilov

unread,
Mar 15, 2012, 1:48:45 PM3/15/12
to right...@googlegroups.com
Привет, сейчас гляну

--
Thanks,
Nikolay

Nikolay Nemshilov

unread,
Mar 15, 2012, 1:58:02 PM3/15/12
to right...@googlegroups.com
Да, похоже на то, Пробовали заменить на 'hide', работает?

Avol

unread,
Mar 15, 2012, 2:14:42 PM3/15/12
to RightJS Для Бородатых Хакеров
Да, если заменить, то работает.
Но пользоваться им тяжеловато -- в процессе быстрого ввода в поле
постоянно происходят show и hide события.

Nikolay Nemshilov

unread,
Mar 15, 2012, 2:29:59 PM3/15/12
to right...@googlegroups.com
Попробуйте свежую сборочку со скрепки плз. Я там немного подправил этот баг

right-autocompleter-src.js
right-autocompleter.js

Avol

unread,
Mar 15, 2012, 2:31:46 PM3/15/12
to RightJS Для Бородатых Хакеров
Чтобы было понятно, что я пытаюсь сделать -- мне нужно, чтобы список
закрывается без выбора, автоматически выбирался первый вариант. Это
получается сделать, но даже с таймером периодически происходит глюк с
выбором пункта в процессе набора:


функция таймера:
func_timer = R(function()
{
autocompliter.fire('done');

console.log('timer');

if ( defined(autocompliter.options.spinner) &&
defined(autocompliter.options.spinner.hide) )
{
autocompliter.options.spinner.hide();
}
});

обработчики:
show: function(event)
{
if ( defined(obj_timer) && defined(obj_timer.cancel) )
{
obj_timer.cancel();
}
},
update: function(event)
{
if ( defined(obj_timer) && defined(obj_timer.cancel) )
{
obj_timer.cancel();
}
},
hide: function(event)
{
obj_timer = func_timer.delay( '1000' );

Avol

unread,
Mar 15, 2012, 2:32:30 PM3/15/12
to RightJS Для Бородатых Хакеров
Это касалось старой версии, сейчас проверю новую.

Avol

unread,
Mar 15, 2012, 2:38:57 PM3/15/12
to RightJS Для Бородатых Хакеров
hide срабатывает, но так же происходит его попеременное срабатываение.
т.е., добавив ещё в hide вывод в консоль, при быстром наборе получаю
такое:

hide
hide
hide
hide
hide
GET http://...
hide
timer
GET http://...
timer
timer
GET http://...
hide
timer

Nikolay Nemshilov

unread,
Mar 15, 2012, 2:45:21 PM3/15/12
to right...@googlegroups.com
Да, я не полностью устранил проблему, кое где события все еще дупятся из-за задержек с визуальными эффектами.

Просто думал, для вашего случая этого может оказаться достаточно

Nikolay Nemshilov

unread,
Mar 15, 2012, 3:09:47 PM3/15/12
to right...@googlegroups.com
Попробуйте плз вот еще соборочку, тут кажется все поправил

right-autocompleter-src.js
right-autocompleter.js

Avol

unread,
Mar 16, 2012, 5:13:59 AM3/16/12
to RightJS Для Бородатых Хакеров
Спасибо за оперативность. Но проблема, к сожалению, всё-ещё
присутствует.
Раз вы говорили, что это связано с визуальными эффектами, может
уменьшение длительности анимации мне поможет?

On 15 мар, 23:09, Nikolay Nemshilov <nemshi...@gmail.com> wrote:
> Попробуйте плз вот еще соборочку, тут кажется все поправил
>

>  right-autocompleter-src.js
> 18KПросмотретьЗагрузить
>
>  right-autocompleter.js
> 7KПросмотретьЗагрузить


>
>
>
> On Mar 15, 2012, at 10:38 PM, Avol wrote:
>
>
>
>
>
>
>

Nikolay Nemshilov

unread,
Mar 16, 2012, 6:34:46 AM3/16/12
to right...@googlegroups.com
Может попробовать отключить анимацию совсем? если указать fxName: null я думаю панель должна начать появляються/исчезать сразу же, синхронно, и вам не потребуется писать черное вуду с задержками

Avol

unread,
Mar 19, 2012, 5:05:55 AM3/19/12
to RightJS Для Бородатых Хакеров
При fxName: null события show и hide вообще не срабатывают.
Но если поставить fxDuration: 1, то вроде проблема пропадает.

Avol

unread,
Mar 19, 2012, 5:07:31 AM3/19/12
to RightJS Для Бородатых Хакеров
При fxName: null события show и hide вообще не срабатывают.
Но если написать fxDuration: 1, то вроде проблема пропадает.

On 16 мар, 14:34, Nikolay Nemshilov <nemshi...@gmail.com> wrote:

Avol

unread,
Mar 19, 2012, 5:08:42 AM3/19/12
to RightJS Для Бородатых Хакеров
При fxName: null события show и hide вообще не срабатывают.
Но если написать fxDuration: 1, то вроде проблема пропадает.

On 16 мар, 14:34, Nikolay Nemshilov <nemshi...@gmail.com> wrote:

Nikolay Nemshilov

unread,
Mar 19, 2012, 1:27:15 PM3/19/12
to right...@googlegroups.com
Спасибо, надо будет глянуть при следующем апдейте, в чем там проблема
Reply all
Reply to author
Forward
0 new messages