不受欢迎的colorbox在drupal行为中重新加载

时间:2014-02-27 16:06:55

标签: javascript jquery drupal colorbox

我正在创建一个颜色框,每次用户登录时都会提示。我有后端工作,但是当我尝试创建颜色框时,我一直面临着一些问题。首先,我无法在页面加载时创建颜色框,因为“我认为”我正在获取一些数据,这导致颜色框为空,所以我添加了延迟和隐藏的链接,以便在一段时间后触发。但现在我遇到的问题是,click事件是在无限循环中触发并使站点崩溃。

(function($) {
  Drupal.behaviors.beerfactory = {
    attach: function (context, settings) {
        var state = Drupal.settings.mhf_login_popup.message_state;
        var message = Drupal.settings.mhf_login_popup.message_content;
        if (state) {
            $("#login-popup").colorbox({width:"900px", height:"600px", html:message});
            var id = setTimeout(function(){
                $("#login-popup").click();
            }, 1000);
        };

    }
};
})(jQuery);

这有什么解决方法吗?或者我错过的东西?

修改

我删除了点击触发并替换为:

        var id = setTimeout(function(){
          $.colorbox({width:"900px", height:"600px", html:message});
        }, 1000);

通过此更改,颜色框会在不触发click事件的情况下提示,但即使colorbox仍在无限循环中进行实时加载。它可能是与drupal行为或某些colorbox参数相关的东西吗?

1 个答案:

答案 0 :(得分:1)

我最终在我的主题上使用了一个没有drupal行为的脚本。我已经看到我所遇到的冲突是由于彩盒的ajax和drupal行为引起的。我应该使用上下文或一次()来过滤它,但我不知道如何。

Reference