【问题标题】:jQuery blockUI won't unblockjQuery blockUI 不会解除阻塞
【发布时间】:2013-11-03 22:09:00
【问题描述】:

我有一个很好的模式,可以在通过 ajax 提交帖子时屏蔽屏幕。 blockUI 启动正常,模态显示,但是当 Ajax 完成发布时,模态不会解除阻塞,它只是继续显示。

$(document).ajaxStop($.unblockUI); 

$(document).ready(function() { 
    $('#ninja_forms_field_50').click(function() { 
        $.blockUI({ message: $('#rLo') }); 
    }); 
}); 

<div id="rLo" style="display:none;"> 
    <p style="font-size:33px; font-weight:300; text-align:center; line-height: 48px;">Your Recipe is Processing!</p>  
    <img src="<?php bloginfo('template_url'); ?>/images/loadinfo.net.gif" alt="Loading..." />
    <?php include(TEMPLATEPATH.'/quotes.php'); ?>
</div>

【问题讨论】:

  • 我发现我为 Wordpress 使用的表单插件 (Ninja Forms) 使用了 jQuery AjaxForm 插件,并且插件的开发人员不确定是否调用了 .ajaxStop。他提到我应该能够使用 jQuery 事件:submitResponse 在表单完成提交时触发操作,但是我在任何地方都找不到对该事件的任何引用。 :(

标签: javascript jquery ajax blockui jquery-blockui


【解决方案1】:

你需要一个 ajax 调用来解锁:

$(document).ready(function() { 
    $('#ninja_forms_field_50').click(function() { 
        $.blockUI({ message: $('#rLo') }); 

        // Your ajax call here
    }); 
}); 

【讨论】:

    【解决方案2】:

    我没有使用它,但是如果 blockUI 是一个函数,那么为什么要使用 unblockUI 而不使用 () ?可能是这个问题?

    【讨论】:

      【解决方案3】:

      您的 Ajax 请求发生在哪里?在您提供的代码中没有 Ajax 调用,并且由于 ajaxStop() 仅在 Ajax 请求完成时触发,因此您永远不会评估该函数。

      如果您正确地执行了 Ajax 调用并且没有进行解除阻塞,您可以考虑使用设置为 trueglobal 选项来触发 Ajax 请求。

      参考:http://api.jquery.com/ajaxStop/

      【讨论】:

        猜你喜欢
        • 2014-10-07
        • 2011-02-21
        • 2011-03-19
        • 2014-03-23
        • 1970-01-01
        • 2014-09-25
        • 2021-09-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多