javascript - 无法在通过 jQuery 的 ajax 加载的页面内执行 javascript

标签 javascript jquery ajax

摘要...

我有一个页面正在使用ajax加载其他页面,并且它们包含javascript。 javascript 使用 document.ready ,当使用这样的代码时,它无法正常工作......

    $.ajax({

        type: 'get',
        url: 'layouts/' + layout + '.php',
        success: function(data){ 

            $('.swap').fadeOut('slow', function(){ // container

                $(this).delay(100).fadeIn().html(data);

            });

        }

    }); 

它无法正常工作,因为 JavaScript 运行得太快。

加载使用 document.ready 或类似代码的页面的最佳方式是什么?

最佳答案

当您使用ajax加载页面时,该页面中的javascript通常不会被执行。您可以使用 jQuery load()方法加载页面然后执行脚本。

在您的模板页面中,添加 <div>保存页面的实际内容,如下所示:

<div id="container">
  <ul>
    <li></li>
  </ul>
</div>

在您的“控制面板”页面中,有一个容器 <div>还有:

<div id="container"></div>
<script src="bxslider.js"></script>

然后您可以通过这种方式调用您的代码

$(function(){

  var layout = 'layoutpage1';

  // this loads the contents of the #container div in layout page
  // into #container div on CP page.
  $('#container').load( '/layouts/' + layout + '.php #container', function() {
    initSlider();  // initialize the slider we just loaded
  });

  function initSlider() {
    $('.bxslider').bxSlider({
            pager: false,
            controls: false,
            auto: true,
            mode: 'fade',
            speed: 1500
    });
  }

  // if there is already a slider on the page we can initialize it here
  // just remove comment
  // initSlider();
});

关于javascript - 无法在通过 jQuery 的 ajax 加载的页面内执行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29547553/

相关文章:

javascript - 让 NodeJS 应用程序使用 NPM 更新自身

javascript - jQuery - mouseenter 上的 SlideDown > 延迟 > mouseleave 上的 SlideUp

Ajax.BeginForm 不在 dom 内创建表单标签

javascript - 在整个表上一一运行 Ajax 请求

javascript - 将函数传递给 jquery text() 方法

javascript - 当在页面中的任意位置按下回车键时调用javascript中的特定方法

javascript - 将 Jquery 中的值列表发送到 flask 模板

jquery - 检查 ajax 调用/http 连接当前是否处于事件状态

javascript - 查找数组中的对象

jQuery,Tampermonkey 没有冲突