задержка jquery исчезать - PullRequest
       20

задержка jquery исчезать

0 голосов
/ 27 марта 2012

Я использую плагин jquery с именем tipTip (http://code.drewwilson.com/entry/tiptip-jquery-plugin). Я использую его для сайта электронной коммерции, и когда пользователь наводит курсор на изображение товара, появляется информационное окно с дополнительной информацией о товаре.

Поведение tipTip по умолчанию состоит в том, что при наведении курсора на указатель мыши исчезает указатель мыши. Вы также можете установить keepAlive: true, чтобы требовать, чтобы пользователь наводил указатель мыши на поле наведения, чтобы оно исчезло. Ни один из сценариев не подходитдля меня. У меня есть ссылки в окне наведения, поэтому пользователь должен иметь возможность войти в это поле, не пропуская его. Но я также не хочу, чтобы от пользователя требовалось войти в это поле, чтобы оно исчезло.ссылка и поле должны заставить его исчезнуть.

Чтобы обойти это, я пытался поместить jquery delay () в javascript tipTip. Я также пытался использовать setTimeout. Но я нашелчто все, что я могу получить, это то, что поле наведения остается, пока пользователь не перейдет на другую ссылку.pect delay () означает, что он исчезает через указанное мной количество миллисекунд, независимо от того, перешел ли пользователь на другую ссылку.

Полный код js tipTip можно увидеть здесь: http://code.google.com/p/geoapps/source/browse/trunk/capstones/talha_khopekar_2012/jquery.tipTip.js?spec=svn108&r=108

Я пытался добиться задержки, исправляя последние несколько строк.Я попытался добавить задержку следующим образом:

 function deactive_tiptip(){
                                    opts.exit.call(this);
                                    if (timeout){ clearTimeout(timeout); }
                                    tiptip_holder.delay(1000).fadeOut(opts.fadeOut);
                            }

Но, как я уже сказал, эффект этого состоит в том, что окно наведения остается на месте до тех пор, пока пользователь не перейдет на другую ссылку и не активирует новое окно наведения.Я действительно не понимаю, почему это так.Насколько я понимаю, функция задержки должна просто задерживать fadeOut на 1 секунду, а затем fadeOut должен продолжаться как обычно.

Ответы [ 2 ]

1 голос
/ 27 марта 2012

То, что вы действительно хотите сделать, это включить всплывающую подсказку в области горячей точки и деактивировать только, когда / если пользователь оставляет и начальный элемент, и всплывающую подсказку.

Найти, где происходит событие mouseout, которое вызываетфункция deactivate_tiptip () существует, и добавьте функцию add для класса всплывающей подсказки.Я не знаю архитектуру, но, вероятно, она выглядит примерно так:

tiptip.mouseOut(function () { deactivate_tiptip(); }; // Original
tiptip.add(".TOOLTIP").mouseOut(function () { deactivate_tiptip(); }; // Ammended

// OR:

tiptip.on("mouseOut", function () { deactivate_tiptip(); }; // Original
tiptip.add(".TOOLTIP").on("mouseOut", function () { deactivate_tiptip(); }; // Ammended

Вам придется изменить .TOOLTIP на правильный класс.Это должно активировать функцию деактивации, только когда вы оставляете оба.

1 голос
/ 27 марта 2012

Мне повезло с этой функцией js, когда я пытался отложить вызов другой функции.

window.setTimeout(function(){callFunction(params);}, 4000);

Дайте мне знать, если это поможет. У меня есть пакет с трюками с JS.

С уважением,

...