Показать сообщение отдельно
  #1 (permalink)  
Старый 15.03.2017, 16:12
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

пауза при наведении - поясните пожалуйста
вот есть такая ф-я:
$(function()
{
    var MenuShowTimer;
    $('.wait05').hover(
    function(e)
    {
        MenuShowTimer = setTimeout(
        (function(Obj)
        {
            return function() {$(Obj).next().fadeIn();}; // то что должно происходить
        }) (this),1000)
    },
    // mouse leave сбрасывает таймер
    function(e)
    {
        clearTimeout(MenuShowTimer);
        $(this).next().fadeOut(); // то что должно происходить
    }
    );
});


а вопрос такой - почему эта часть:
$('.wait05').hover(
    function(e)
    {
        MenuShowTimer = setTimeout(
        (function(Obj)
        {
            return function() {$(Obj).next().fadeIn();}; // то что должно происходить
        }) (this),1000)


...не работает (пауза отсутствует) в таком виде:
$('.wait05').hover(
    function(e)
    {
        MenuShowTimer = setTimeout(
        (function(Obj)
        {
            return some_function(e);
        }) (this),1000)

или даже в таком:
$('.wait05').hover(
    function(e)
    {
        MenuShowTimer = setTimeout(
        (some_function(e)) (this),1000)

т.е. хотелось бы сократить и вынести во внешнюю ф-ю, но не выходит почему-то
работает только через
return function() {some_function(e);}

Последний раз редактировалось greenwar, 15.03.2017 в 16:15.
Ответить с цитированием