2015-10-26 6 views
0

Когда на мою страницу кликается ссылка, она отображает предупреждение с идентификатором соответствующего объекта. Но следующее, что происходит (всплывающее окно с запросом URL + querystring, содержащее этот идентификатор), отображается как неопределенное. Поэтому я просто пытаюсь понять, почему идентификатор переменной не удерживает значение при вызове всплывающего окна.Magnific - pass variable javascript issue

Редактировать: Итак, теперь с текущими изменениями требуется 2 щелчка, чтобы отобразить всплывающее окно с правильной строкой/идентификатором. Есть идеи? При изменении .magnificPopup на .magnificPopup.open он ничего не может сделать onclick.

Редактировать: Теперь его работа. Фиксированная линия: $ .magnific.open, чтобы удалить имя класса, которое было привязано к ней. Теперь все работает отлично. Спасибо за помощь!

<head><meta charset='UTF-8'> 

<link rel='stylesheet prefetch' href='magnific-popup/magnific-popup.css'> 
</head><body> 
<script src='magnific-popup/jquery-2.1.4.min.js'></script> 
<script src='magnific-popup/magnific-popup.js'></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.simple-ajax-popup2').click(function() { 
      ID = $(this).data("var1"); 
      // alert(""+ID+""); 
      $.magnificPopup.open({ 
      items: { 
       src: 'Test.html?ID=' + ID + '' 
      }, 
      type: 'iframe', 
     }); 
     }); 


    }); 
</script> 
<a class="simple-ajax-popup2" data-var1="1" href='#' > 
    test 1 
</a> <br> 
<a class="simple-ajax-popup2" data-var1="2" href='#' > 
    test 2 
</a> <br> 
<a class="simple-ajax-popup2" data-var1="3" href='#' > 
    test 3 
</a> 
</body></html> 

ответ

0

Вы должны назвать свое всплывающее окно в пределах функции события щелчка, в противном случае, к тому времени, magnificPopup выполняются, идентификатор еще не определен:

$(document).ready(function() { 
    $('.simple-ajax-popup2').click(function() { 

      ID = $(this).data("var1"); 
      alert(""+ID+""); 
      $('.simple-ajax-popup2').magnificPopup.open({ 
       items: { 
        src: 'Test.aspx?ID=' + ID + "" 
       }, 
       type: 'iframe', 
      }); 
     }); 
}); 
+0

Спасибо, что имеет смысл, но все-таки кажется, что что-то не так. При первом нажатии ссылки появляется предупреждение, и ничего больше не происходит. 2-я попытка щелкнуть по ссылке, по-видимому, работает правильно. Но тогда, когда вы нажимаете другие элементы на странице (та же самая ссылка, но отличается ID/Item), она всегда загружает значение из предыдущей ссылки, а не в текущий момент. – Ginjo

+0

Таким образом, для достижения правильного действия в основном требуется 2 клика. Есть идеи? – Ginjo

+0

Вы проверили код, который я редактировал, и это все еще происходит? –