JQuery mouseout timeout part 2 - PullRequest
       19

JQuery mouseout timeout part 2

0 голосов
/ 18 сентября 2009

Это дополнительный вопрос, следующий за этим .

$('.overlay').bind("mouseenter",function(){
  $(this).fadeTo('slow', 0);
}).bind("mouseleave",function(){
  var $this = $(this);                               
  setTimeout(function() { 
    $this.fadeTo('slow', 1);
  }, 2000);
})

Под моим div .overlay у меня есть биты контента, которые я хочу сделать кликабельными. Таким образом, в этом случае .overlay исчезает до 0 непрозрачности, но все еще покрывает то, что ниже.

Если я использую fadeOut() и fadeIn() здесь, .overlay полностью исчезает, и сценарий думает, что я переместил свою мышь, хотя я все еще зависаю над .overlay.

1 Ответ

0 голосов
/ 18 сентября 2009

Оверлей по-прежнему поглощает события мыши, даже если его непрозрачность равна нулю. На самом деле ваше решение зависит от этого, потому что вы не можете инициировать события mouseenter и mouseleave на оверлее и по-прежнему располагать элементы под кликабельным.

Вероятно, лучше всего вместо этого сделать наложение и элементы под одноуровневыми элементами в контейнере div. С контейнером должны быть связаны действия mouseenter и mouseleave, а когда наложение полностью исчезает, его также следует скрыть. Это позволит вам получить доступ к элементам, расположенным под ним.

Ключ в том, что для того, чтобы можно было щелкать элементы под вашим наложением, он должен быть скрыт или иным образом не покрывать элементы под ним, даже если он полностью прозрачен.

Кстати, я думаю, что это поведение зависит от браузера. Например, в IE вам может быть разрешено нажимать под прозрачным наложением, а в FF - нет.

...