jquery.pjax.js局部刷新 prism高亮插件失效的解决办法

发布于 2019-09-08  606 热度


问题发现

在解决了使用pjax插件script标签不加载的问题后,发现prism.js高亮插件失效了。

这个问题解决比较简单,只要局部刷新完成时重新加载一下prism.js就可以了。

解决方法

Pjax有几个周期,在每个周期可以自定义要执行的方法:

$(document).pjax("a", '#page', {
    fragment: '#page',
    timeout: 8000,
}).on('pjax:send', function() {
    //pjax发送请求时执行的方法

    //可以在这里实现显示加载中的相关操作,例如:
    $('#loading').fadeIn(300);//显示Loading...
}).on('pjax:complete', function() {
    //pjax请求完毕要执行的方法

    $('#loading').fadeOut(300);//加载完毕隐藏Loading...
    //可以在这里实现页面重新渲染的操作。
    //例如重新调用prism.js的主方法,使其重新渲染页面中的代码块:
    Prism.highlightAll();// 解决Prism.js代码高亮
}

我一直在开辟我的天空