【问题标题】:jquery pushstate callback scriptjquery pushstate 回调脚本
【发布时间】:2013-06-10 14:41:31
【问题描述】:

我使用 html5 历史推送状态来加载一些博客文章页面。

在通过 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时如何初始化脚本?

对不起我的英语,我是法国人。

【问题讨论】:

    标签: jquery callback pushstate


    【解决方案1】:

    您可以使用window.onpopstate 事件来调用脚本。

    在那里查看文档:

    https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Manipulating_the_browser_history#The_popstate_event

    编辑

    你试过了吗:

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

    注意onload会在onpopstate之前触发。

    【讨论】:

    • 向我展示你尝试的代码示例。顺便说一句,第三人称“不”* ;)
    • 你可以在这里看到我的 pushstate 脚本:stackoverflow.com/questions/16658895/…,没有任何回调脚本。最好的方法是在我的 load_content 函数中回调,但它不起作用。我认为是因为异步任务...
    • 更新功能无法正常工作。如果我将脚本在 windows resize 中初始化 isoslider 它适用于浏览器调整大小(它不适用于更新功能)......我需要确保在回调 iosslider 之前加载所有内容......
    • 它不适用于您更新的答案。但我几乎可以肯定,最好的方法是在我的 load_content 函数中回调......
    • 它不工作。但我找到了解决方案。在我的 load_content 函数中,我将我的 iosslider 初始化函数放在最后一个 setTimeout 以确保 iosslider 容器在尝试更新它之前存在......它有效但我确信有一个更好的解决方案.. ..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2013-06-15
    相关资源
    最近更新 更多