2013-10-14 5 views
0

Мне был предоставлен простой проект отображения изображений с событием mouseover с использованием jquery. Цель состоит в том, чтобы отображать qtip только в том случае, если он является mousedover, предварительно он связал все их при загрузке, и это было очень медленно. Они используют qtip 1.0, и я сталкиваюсь с «Слишком большой ошибкой рекурсии», и мне не удается определить, где происходит рекурсия. Я провел некоторое исследование и, возможно, что-то связанное с пузырьками событий, но еще не смог его исправить.Qtip: 1.0 слишком много рекурсии

$(document).ready(function(){ 

$(".employee").hover(function(event) { 
     event.stopPropagation(); 
     var content = '<img src="/upload_test/'; 
     <!-- content += $(this).attr('id'); --> 
      content += 'test.jpg'; 
      content += '" alt="Loading thumbnail..." height="202" width="254" />'; 

     $("#" + event.target.id).qtip(
      { 
      content: content, 
      position: { 
       corner: { 
        tooltip: 'leftTop', 
        target: 'leftTop' 
       } 
      }, 
      style: { 
       height:202, 
       width:280, 
      border: { 
       width: 7, 
       radius: 5, 
       color: 'black' 
      } 
       // Give it a speech bubble tip with automatic corner detection 

      }, 
      hide: { fixed: true, delay: 1000 } 
      }); 
    }); 

}); 
+0

Есть ли вероятность обновления до qtip2? – mplungjan

+0

Я сомневаюсь, что они не обновляются, если это абсолютно необходимо. –

+0

Возможно, каждый раз, когда вы наводите курсор, он создает новый экземпляр. Вы можете попробовать уничтожить его, прежде чем создавать его. '$ (" # "+ event.target.id) .qtip ('destroy');' – Moob

ответ

-1

Мех, проблема в том, что я не читал руководство правильно и внедрил его неправильно. Теперь все в порядке.

+1

Не могли бы вы отредактировать свой ответ, чтобы поделиться с сообществом тем, как вы решили свою проблему. Цель stackoverflow состоит в том, чтобы иметь Q и A. Thanx –

0

почему бы не использовать event.currentTarget вместо:

$("#" + event.currentTarget.id).qtip(... 

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

if($(e.currentTarget).is(".some-class")){ 

    // code goes here for qtip 
    $("#" + event.currentTarget.id).qtip(... 
    ... 
} 

я не могу видеть ваше markup..but используя делегирование событий, как я сделал выше, проверив, что ваш клик вы хотите хотите щелкнуть, чтобы он не пузырился DOM

Смежные вопросы