【问题标题】:fire jquery plugin after ajax loads contentajax 加载内容后触发 jquery 插件
【发布时间】:2013-06-06 03:55:53
【问题描述】:

我有一个 ajax 站点,其中:

<div class="content" id="current_page1">the content< /div>  

根据用户所在的页面换出。我想在 ajax 加载我的内容时触发一个 jquery 插件

<div id="current_page1">the content< /div>

jquery 有什么方法可以判断“current_page1”是否已加载?如果“current_page1”是通过 ajax 创建/加载的,document(ready) 显然不会检测到“current_page1”。

基本上我在寻找:

  1. 主动检测#current_page1
  2. startPlugin()

提前致谢!我看到很多帖子似乎与我正在寻找的内容有些相关,但我发现的大多数相关答案都与 ajax 加载后的绑定点击事件有关。我只是想触发一些插件!

【问题讨论】:

  • 在您的 $.ajax success 方法上,运行您需要运行的任何代码 (StartPlugin())...
  • 你可以使用 jQuery.ajax 代替 jQuery.load(我假设你是这样的)——它通过回调为你提供了更多的权力。
  • 感谢各位的帮助!我找到了一种解决方法,使我的问题变得无关紧要。我会发布解决方案,但它与/回答最初的问题并不真正相关。

标签: jquery plugins


【解决方案1】:

您可以在此处使用 jQuery 延迟。您可以查看API here。 AJAX 调用成功解析时触发延迟的伪代码示例如下:

var ajaxDeferred = makeAJAXCall();
ajaxDeferred.then(function(){
    //whatever you want to happen when the deferred is resolved.
});

var makeAJAXCall = function(){
    var callComplete = new $.Deferred();
    $.ajax({
        success: function (data, textStatus, jqXHR)
        {
            //resolve the deferred!
            callComplete.resolve(data);
        }
    });
    return callComplete.promise();
}

【讨论】:

    【解决方案2】:

    最简单的方法是将脚本附加到您的 ajax 页面:

    <script> startPlugin() </script>
    

    更好的方法是像其他答案建议的那样使用回调。

    【讨论】:

      猜你喜欢
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2018-01-07
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多