Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   таймер на событие (https://javascript.ru/forum/dom-window/19260-tajjmer-na-sobytie.html)

Anpl 29.07.2011 23:32

таймер на событие
 
как правильно повесить таймер на событие

вот так mouseleave вообще не отрабатывает...

$(function(){
$(".categimg").live({

mouseenter: function() {
$(this).parent("li").find( ".sp" ).css('visibility', 'visible');
},
mouseleave: function() {
setTimeout(function(){
$(this).parent("li").find( ".sp" ).css('visibility', 'hidden');
}, 200);

}

});

})

SkyLight 29.07.2011 23:57

this внутри функции, которую вы скормили тайм-ауту, указывает совсем не на то, что вы думаете.

Anpl 30.07.2011 12:43

подскажите пожалуйста, как скрыть тот же элемент, который был сделан по mouseenter...

Anpl 30.07.2011 22:42

$(function(){
$(".categimg").live({

mouseenter: function() {
$(this).parent("li").find( ".sp" ).css('visibility', 'visible');
},
mouseleave: function() {
setTimeout(function(){
$( ".sp" ).css('visibility', 'hidden');
}, 200);

}

});

})

такой вариант работает, для всех классов .sp... подскажите пожалуйста как указать что бы событие применялось только к тому элементу на котором отработал событие курсор

melky 30.07.2011 22:56

для ie закешируй в глобали, а потом убери за собой

$(function(){
 $(".categimg").live({
     

     mouseenter: function() {
          $(this).parent("li").find( ".sp" ).css('visibility', 'visible');
     },
      mouseleave: function(e) {
          *!* window.cachedTrg = e.target;*/!*
           setTimeout(function(){
                $(*!*window.cachedTrg*/!*).css('visibility', 'hidden');
                *!*delete window.cachedTrg*/!*;
           }, 200);

      }

});
});


Часовой пояс GMT +3, время: 23:11.