【问题标题】:Apply jquery plugins to loaded ajax content [duplicate]将jquery插件应用于加载的ajax内容[重复]
【发布时间】:2012-06-12 15:42:03
【问题描述】:

可能重复:
Apply jquery function to ajax content

我通过 .on

阅读了Article about binding fancybox to a ajax loaded content

问题是:我需要在每次重新加载内部 DIV 时激活插件。

这是我的 HTML:

<div id="page">
 <div id="ajax_container">
  content with selectboxes
 </div>
</div>

这是我的 JS

jQuery("#page").on("focus", function(){
jQuery("select").selectbox({
        effect: "fade"
 }); // selectbox
}); // on

内容现在需要移动鼠标来转换选择框。我还没有找到任何其他工作事件。 此外,转换 SELECT 需要很长时间。

每个加载的 AJAX 内容如何只显示应用插件?

注意:AJAX 请求是由另一个 js-framework/ruby 发出的

【问题讨论】:

    标签: jquery ajax plugins


    【解决方案1】:

    您可以像这样在ajax请求的成功回调中绑定selectbox

    $.post('URL',{data:data},function(data){
                    $(data).appendTo('#ajax_container').filter('select').selectbox({
                       effect: "fade"
                    });
    });
    

    Working Fiddle

    由于您无法在该 ajax 成功回调中初始化插件,因此您可以注册一个全局成功回调,这可能会起作用。检查这个

    $('body').ajaxSuccess(function(){
       $('select').selectbox({
                           effect: "fade"
                        });
    });
    

    更多关于.ajaxSuccess

    【讨论】:

    • 谢谢!不幸的是,我无法影响 ajax 请求。 ajax 部分由 ruby​​ on rails 完成。
    • 检查我更新的答案。
    • 感谢您的更新!看起来很有希望,但现在完整的 ajax 请求似乎被破坏了。如果我通过 JS 控制台激活 ajaxSuccess,ajax 请求将不再起作用;为了尝试它,我使用了以下代码:jQuery('#page').ajaxComplete(function(){ alert('ajax'); });
    • 只想评论第一个:自从jquery-ujs以来,有ajax:before之类的回调可以绑定到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    相关资源
    最近更新 更多