Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery pushstate回调脚本_Jquery_Callback_Pushstate - Fatal编程技术网

jquery pushstate回调脚本

jquery pushstate回调脚本,jquery,callback,pushstate,Jquery,Callback,Pushstate,我使用html5 history pushstate加载一些博客文章页面 在通过pushstate加载的每个页面中,我都有一个滑块(IOSLider)。 当我加载博客页面时,滑块不工作。我想我需要回调ioslider脚本 以下是用于初始化它的ioslider脚本: $('.iosSlider').iosSlider({ responsiveSlideContainer: true, responsiveSlides: true, snapToChildren: true, desktopClic

我使用html5 history pushstate加载一些博客文章页面

在通过pushstate加载的每个页面中,我都有一个滑块(IOSLider)。 当我加载博客页面时,滑块不工作。我想我需要回调ioslider脚本

以下是用于初始化它的ioslider脚本:

$('.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
});