У меня есть несколько кнопок «Купить сейчас» разных статей. Когда кнопка имеет класс «распродано», она не должна ничего делать, иначе она должна открыть всплывающее окно jQuery Magnific. Пока это работает. Моя проблема в том, что когда я впервые нажимаю на домашнюю страницу доступную для покупки кнопку «Купить сейчас», она ничего не делает. Когда я нажимаю на него во второй раз, открывается окно jQuery. Но почему это не работает в первый раз уже??
Мой HTML:
<a href="payment_options.php" class="btn-1 ajax-popup" data-region="EUW" data-packageid="1" style="display: inline-block;">Purchase Now</a>
Мой JQuery:
$('.open-popup-link').magnificPopup({
type:'inline',
midClick: true,
mainClass: 'mfp-fade'
});
$('.ajax-popup').click(function(e){
e.preventDefault();
if($(this).hasClass("sold-out")) {
return false;
}
var region = $(this).data('region');
var quantity = $(this).data('quantity');
if(typeof quantity == 'undefined') quantity = $(this).parent().find('select').val();
var packageid = $(this).data('packageid');
$(this).magnificPopup({
type: 'ajax',
ajax: {
settings: {
data : {
region : region,
quantity : quantity,
packageid : packageid,
}
}
},
closeOnContentClick: false,
closeOnBgClick: false
});
});
magnificPopup
для элементов только после того, как щелкнули по нему, поэтому он открывается только после второго щелчка. - person A. Wolff   schedule 05.02.2015$('.ajax-popup').each(function(){$(this).magnificPopup(...);});
вне обработчика кликов? - person A. Wolff   schedule 05.02.2015magnificPopup(...)
? - person kentor   schedule 05.02.2015each
только для установки плагина, я думал, что это очевидно - person A. Wolff   schedule 05.02.2015$('.ajax-popup').click(function(e){ e.preventDefault();}).each(function(){if($(this).hasClass("sold-out")) {...//all code here});
- person A. Wolff   schedule 05.02.2015