2012-01-04 2 views
0

У меня есть событие просто зависать(), который прекрасно работает здесь: http://waterworks.reuniondesign.com/rates (парение над одним из чисел скольжения)Jquery simplemodal вызывает зависание() для запуска несколько раз?

И он прекрасно работает на главной странице здесь, где я нескрываемое это: http://waterworks.reuniondesign.com/ (свиток вниз)

Но когда вы нажимаете кнопку «Нажмите здесь, чтобы марины» на главной странице, а div превращен в простое поле, событие hover() запускается дважды, когда один навешивает номер скольжения. Почему это? Я попытался сделать то, что задает переменную, чтобы увидеть, запущена ли она, но она не работает. Есть идеи?

Вот код для события наведения. jLoader является Аякса функция:

$(document).ready(function(){ 
    var live = false; 
    $('.slip').hover(function(){ 
     console.log('opening ' + live); 
     if (live != true) { 
      live = true; 
      console.log('still opening ' + live); 
      $(this).css('z-index','999'); 
      $(this).delay(500).append("<div id='slip_popup'><div id='slip_details'>loading slip details...</div></div>"); 
      jLoader('/blocks/slip_detail.php?slip_number=' + $(this).attr('id').replace('slip_',''),'replace','slip_details'); 
     } 
    },function(){ 
     $(this).css('z-index','1'); 
     $('#slip_popup').remove(); 
     live = false 
     console.log('closing ' + live); 
    }); 
}); 

Наконец, если кто-нибудь знает, почему функция задержки не работает до функции дописывания() Я хотел бы знать!

ответ

0

Хорошо, я понял это, хотя некоторые люди могут больше разработать. То, что происходит, заключается в том, что простой модный скрипт не разрушает оригинальный div и его содержимое, он просто клонирует его. Это означает, что если div присутствует перед простомодным вызовом, то все внутри этого div теперь имеет несколько экземпляров где-то в DOM (?).

Функция jquery hover() должна каким-то образом запутываться, потому что в DOM есть несколько экземпляров элемента с одним и тем же идентификатором, поэтому он дважды вызывает вызов, когда вы наводите курсор на один из них, а затем запускаете остальные сценария наведения, добавляя два div и дважды заполняя их вызовом ajax.

Так что я закончил делать это с помощью вызова Ajax после того, как simplemodal заполнил содержимое модального окна. Таким образом, элементы добавляются в DOM после модального вызова и, следовательно, не дублируются.

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