我使用html5历史记录pushstate加载一些博客帖子页。
在每个加载的页面内通过pushstate我有一个滑块(iosslider)。 当我加载博客页面时,滑块不起作用。我想我需要回调iosslider脚本。
这是用于初始化它的iosslider脚本:
$('.iosSlider').iosSlider({
responsiveSlideContainer: true,
responsiveSlides: true,
snapToChildren: true,
desktopClickDrag: true,
keyboardControls: true,
infiniteSlider: true,
navSlideSelector: true,
autoSlide: true,
autoSlideTimer: 5000,
navNextSelector: $('.slider-next'),
navPrevSelector: $('.slider-prev'),
navSlideSelector: $('.slider-pagination .slider-page'),
onSlideChange: slideChange
});
当我触发pushstate时如何初始化脚本?
对不起我的英语,我是法国人。
答案 0 :(得分:0)
您可以使用window.onpopstate
事件来调用脚本。
检查那里的文档:
修改强>
你试过这个:
$(element).iosSlider('update');
http://iosscripts.com/iosslider/#installation-and-setup#public-methods
你在控制台中有任何错误吗?
修改2
我怀疑它与同步/异步有关。问题是当你使用pushstate时,页面并没有真正“重新加载”。我猜它滑块的脚本刚刚停止,你需要再次启动它,但它已经实现了,你不能再次初始化它。
尝试:
$(element).iosSlider('destroy');
然后再次初始化。
在你的onpopstate函数中放置它:
if (event.state) {
load_content(event.state.title, window.location.pathname, true);
// here
编辑3
使用:
$(window).load(function () {
// initialize
});
请注意,在onpopstate之前会触发onload。