Проблемы с зависанием jQuery: 1. z-index? 2. отменить привязку? - PullRequest
0 голосов
/ 22 декабря 2011

Дайте мне знать, если это действительно нужно задавать как две отдельные проблемы, но поскольку речь идет об одном и том же фрагменте кода (в следующей скрипте: http://jsfiddle.net/jhacks/xCcdn/89/), Я чувствовал, что это будет лучше для одной темы.Дайте мне знать, если мне нужно отредактировать и превратить его в две части. Во всяком случае, надеюсь, вы сможете посмотреть на код ... у меня следующие проблемы:

  1. Z-index., Как вы увидите в коде, когда вы наводите курсор мыши на элементы div, красный элемент topIconNew не останется неподвижным, но я бы этого хотел. Я понимаю, что это потому, что он находится ниже элементов topTip и topDrop вHTML, поэтому, когда они появляются, он перемещается вместе с ними. Однако я должен поместить его ниже этих div в html, так как он расположен относительно, поэтому заставьте его позиционировать себя последовательно, независимо от того, присутствует ли topIconNew div,должен быть первым в html. Я подумал, что, возможно, я мог бы заставить все это работать, используя z-index, но CSS здесь недостаточно. Есть что-то, чтобы измениться в jQuery?

  2. Unbind / повторное связывание.В коде jQuery у меня есть .unbind ("hover") при нажатии topIconNew, чтобы отобразить div-элементы topTip и topDrop.Я хочу, чтобы при наведении курсора topTip и topDrop отображались помехи.Однако при попытке использовать .rebind ("hover") в функции .click (document) он все равно не будет работать.Как лучше всего подойти к временному отключению .hover?

Также, что касается hover: если вы удалили строку кода .unbind ("hover"), вы заметите, что зависание ведет себя странно, когда делители topTip / topDropпоказ.Другой элемент hover topTip div не будет скрываться при перемещении указателя, div становится постоянным.Было бы неплохо, чтобы опция hover по-прежнему работала должным образом, пока присутствуют div-элементы topTip / topDrop (вместо упомянутого выше подхода при временном отключении hover).Хотелось бы, чтобы парящие дивы всегда были НИЖЕ подгруппами topTip / TopDrop, которые были открыты.

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

Кроме того (и не так важно, потому что думаю, что я могу понять, где я ошибся), почему не мой .css ('background-цвет: # 555555 ') работает?

1 Ответ

0 голосов
/ 22 декабря 2011

Извините, у меня нет времени, чтобы дать полный ответ на оба вопроса, но у меня есть простой ответ для этой части:

Как лучше всего подойти к этому временному отключениюof .hover?

Мой предпочтительный метод - иметь переменную hoverEnabled и оставить обработчик наведения навсегда связанным - вот очень общий пример (подстановка ваших собственных селекторов и обработка):

$(document).ready(function() {

   var hoverEnabled = true;

   $("someselector").hover(
      function() {
         if (!hoverEnabled)
            return;

         // actual mouse enter processing here
      },
      function() {
         if (!hoverEnabled)
            return;

         // actual mouse leave processing here
      }
   );

   $("someotherselector").on("some event", function() {
      hoverEnabled = false;
   });

   $("someotherselector").on("some other event", function() {
      hoverEnabled = true;
   });
});

Очевидно, что этот метод работает для любого события, которое вы хотите временно отключить (и также может использоваться для временного «отключения» обработки setInterval), и, конечно, вам не нужно использовать .on(), вы можете использовать .click() или любое другое подходящее.

...