Jquery 弹出窗口内的滑块不起作用
Jquery slider inside popup dosen't work
我正在尝试在弹出框中编写一个滑块。
我正在使用 Jquery。
弹出窗口有效,它会按我想要的方式弹出。
对于滑块,我使用 Swiper jquery 库。
如果我自己测试弹出窗口中的代码 div 滑块效果很好,但那里肯定有一些碰撞。
这就是我刚才描述的link。
http://seveloff.com/test/popup.html
这是弹出代码:
$(document).ready(function() {
$(window).load(function() {
$("div#slidex").append('<div class="pup disable"><div class="swiper-container"><div class="swiper-wrapper"><div class="swiper-slide"><img src="images/1.jpg" alt="pro group 1"></div><div class="swiper-slide"><img src="images/2.jpg" alt="pro group 2"></div><div class="swiper-slide"><img src="images/3.jpg" alt="pro group 3"></div><div class="swiper-slide"><img src="images/4.jpg" alt="pro group 4"></div></div> <div class="swiper-pagination"></div></div><img id="x" src="http://cmsresources.windowsphone.com/windowsphone/en-us/How-to/wp7/inline/basic-icon-x.png"> </div>');
setTimeout(function() {
$("div.pup").fadeIn(200).addClass("active");
}, 3000);
$('#x').on('click', function() {
$("div.pup").fadeOut(300).addClass("disable");
});
});
});
我在控制台没有收到任何错误。
我一定是漏掉了什么……
问题是您在尚未加载目标元素时尝试初始化滑动条。此外,当您在超时内显示 div.pup
时,您应该在那里初始化滑动器。
您可以改进的另一件事是您不需要等待分别加载 DOM 和内容。在这种情况下,只需等待 DOM 就足够了。
您的代码应如下所示 (jsFiddle):
$(function(){
$("div#slidex").append('<div class="pup disable"><div class="swiper-container"><div class="swiper-wrapper"><div class="swiper-slide"><img src="http://seveloff.com/test/images/1.jpg" alt="pro group 1"></div><div class="swiper-slide"><img src="http://seveloff.com/test/images/2.jpg" alt="pro group 2"></div><div class="swiper-slide"><img src="http://seveloff.com/test/images/3.jpg" alt="pro group 3"></div><div class="swiper-slide"><img src="http://seveloff.com/test/images/4.jpg" alt="pro group 4"></div></div> <div class="swiper-pagination"></div></div><img id="x" src="http://cmsresources.windowsphone.com/windowsphone/en-us/How-to/wp7/inline/basic-icon-x.png"> </div>');
setTimeout(function() {
$("div.pup").fadeIn(200).addClass("active");
new Swiper('.swiper-container', {
pagination: '.swiper-pagination',
nextButton: '.swiper-button-next',
prevButton: '.swiper-button-prev',
slidesPerView: 1,
paginationClickable: true,
spaceBetween: 30,
loop: true,
autoplay: 2500,
autoplayDisableOnInteraction: false,
effect: 'fade'
});
}, 3000);
$('#x').on('click', function() {
$("div.pup").fadeOut(300).addClass("disable");
});
});
我正在尝试在弹出框中编写一个滑块。
我正在使用 Jquery。 弹出窗口有效,它会按我想要的方式弹出。
对于滑块,我使用 Swiper jquery 库。
如果我自己测试弹出窗口中的代码 div 滑块效果很好,但那里肯定有一些碰撞。
这就是我刚才描述的link。
http://seveloff.com/test/popup.html
这是弹出代码:
$(document).ready(function() {
$(window).load(function() {
$("div#slidex").append('<div class="pup disable"><div class="swiper-container"><div class="swiper-wrapper"><div class="swiper-slide"><img src="images/1.jpg" alt="pro group 1"></div><div class="swiper-slide"><img src="images/2.jpg" alt="pro group 2"></div><div class="swiper-slide"><img src="images/3.jpg" alt="pro group 3"></div><div class="swiper-slide"><img src="images/4.jpg" alt="pro group 4"></div></div> <div class="swiper-pagination"></div></div><img id="x" src="http://cmsresources.windowsphone.com/windowsphone/en-us/How-to/wp7/inline/basic-icon-x.png"> </div>');
setTimeout(function() {
$("div.pup").fadeIn(200).addClass("active");
}, 3000);
$('#x').on('click', function() {
$("div.pup").fadeOut(300).addClass("disable");
});
});
});
我在控制台没有收到任何错误。
我一定是漏掉了什么……
问题是您在尚未加载目标元素时尝试初始化滑动条。此外,当您在超时内显示 div.pup
时,您应该在那里初始化滑动器。
您可以改进的另一件事是您不需要等待分别加载 DOM 和内容。在这种情况下,只需等待 DOM 就足够了。
您的代码应如下所示 (jsFiddle):
$(function(){
$("div#slidex").append('<div class="pup disable"><div class="swiper-container"><div class="swiper-wrapper"><div class="swiper-slide"><img src="http://seveloff.com/test/images/1.jpg" alt="pro group 1"></div><div class="swiper-slide"><img src="http://seveloff.com/test/images/2.jpg" alt="pro group 2"></div><div class="swiper-slide"><img src="http://seveloff.com/test/images/3.jpg" alt="pro group 3"></div><div class="swiper-slide"><img src="http://seveloff.com/test/images/4.jpg" alt="pro group 4"></div></div> <div class="swiper-pagination"></div></div><img id="x" src="http://cmsresources.windowsphone.com/windowsphone/en-us/How-to/wp7/inline/basic-icon-x.png"> </div>');
setTimeout(function() {
$("div.pup").fadeIn(200).addClass("active");
new Swiper('.swiper-container', {
pagination: '.swiper-pagination',
nextButton: '.swiper-button-next',
prevButton: '.swiper-button-prev',
slidesPerView: 1,
paginationClickable: true,
spaceBetween: 30,
loop: true,
autoplay: 2500,
autoplayDisableOnInteraction: false,
effect: 'fade'
});
}, 3000);
$('#x').on('click', function() {
$("div.pup").fadeOut(300).addClass("disable");
});
});