【问题标题】:loading scripts when pjax do its job当 pjax 完成工作时加载脚本
【发布时间】:2012-08-29 15:41:48
【问题描述】:

我在 MVC CodeIgniter 框架中有一个项目,每个视图都有它的 javascript,它位于该视图的末尾。

现在当 pjax 加载该页面时,它应该加载脚本,但它没有。 脚本标签在那里,但它没有加载,需要以某种方式将它加载到 pjax 上?

<script>
    $(document).ready(function() {
        $('body').on('change', '#grad, #adresa', function() {
            adresa = getAddress();
            marker.codeAddress(adresa);
        });
        $('#form').validator({message : ''});
        .
        .
        . // more functions


    } );
</script>

有什么帮助吗?

【问题讨论】:

  • 可以在$('body').on('change', '#grad, #adresa', function() {
  • 有效吗?确保触发操作?
  • alert 有效,但验证器出错,因为我只是在该页面上加载验证器,但它没有加载,我的意思是在这个脚本标签之前我加载 &lt;script src="http://cdn.jquerytools.org/1.2.7/form/jquery.tools.min.js"&gt;&lt;/script&gt; 并且它没有加载: (当 pjax 加载页面时,谷歌无法加载地图
  • 现在我有错误,当我使用像map.init 这样的函数时,var map = { init: function() {.....} },javascipt 无法在加载时加载该函数,为什么会发生这种情况?
  • 伙计,您还应该在您的 pjax 加载页面中再次加载 google map api。由于谷歌地图将在您的 pjax 文件中再次初始化...

标签: javascript ajax codeigniter pjax script-tag


【解决方案1】:

我有点晚了,但其他人通过 Google 找到这个:

在 PJAX 请求中加载的脚本不应位于 .ready 包装器中,因为文档不会触发加载的事件。主文档保留在原地,仅替换了一个片段。

这意味着您应该在 PJAX 请求完成后再次初始化插件和东西。这有时会变得很棘手。

pjax:success 将是一个值得倾听的好事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 2016-07-31
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多