jquery pushstate回调脚本
我使用html5 history pushstate加载一些博客文章页面 在通过pushstate加载的每个页面中,我都有一个滑块(IOSLider)。 当我加载博客页面时,滑块不工作。我想我需要回调ioslider脚本 以下是用于初始化它的ioslider脚本:jquery pushstate回调脚本,jquery,callback,pushstate,Jquery,Callback,Pushstate,我使用html5 history pushstate加载一些博客文章页面 在通过pushstate加载的每个页面中,我都有一个滑块(IOSLider)。 当我加载博客页面时,滑块不工作。我想我需要回调ioslider脚本 以下是用于初始化它的ioslider脚本: $('.iosSlider').iosSlider({ responsiveSlideContainer: true, responsiveSlides: true, snapToChildren: true, desktopClic
$('.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时如何初始化脚本
对不起,我的英语是法语。您可以使用
window.onpopstate
事件调用脚本
检查那里的文档:
编辑
你试过这个吗:
$(element).iosSlider('update');
控制台中有错误吗
编辑2
我怀疑它与sync/async有关。问题是当您使用pushstate时,页面并没有真正“重新加载”。我猜滑块的脚本刚刚停止,您需要重新启动它,但它已经实例化,您不能再次初始化它
尝试:
$(element).iosSlider('destroy');
然后再次初始化它
在onpopstate函数中,将其放在以下位置之后:
if (event.state) {
load_content(event.state.title, window.location.pathname, true);
// here
编辑3
使用:
请注意,onload将在onpopstate之前触发。显示您在哪里尝试的代码示例。顺便说一句,对于第三人来说是“不”*)您可以在此处看到我的pushstate脚本:,而不需要任何回调脚本。最好的方法是在我的load_content函数中回调,但它不起作用。我认为这是因为异步任务…更新功能不能正常工作。如果我将初始化isoslider的脚本放在windows resize中,它将在浏览器resize上工作(不适用于更新功能)。。。我需要确保在回调ioslider之前加载了所有内容…它与更新的答案不兼容。但我几乎可以肯定,最好的方法是调用我的load_content函数……它不起作用。但我找到了解决办法。在我的load_content函数中,我将ioslider初始化函数放在setTimeout的末尾,以确保ioslider容器在尝试更新之前存在。。。这是可行的,但我相信有更好的解决办法。。。。
$(window).load(function () {
// initialize
});