在Drupal 7上完成DOM之前加载JQuery脚本

时间:2014-08-11 15:09:04

标签: javascript jquery html drupal drupal-7

我认为这是我遇到的问题。我一直遇到一个未被捕获的TypeError:undefined不是一个函数' JQuery在DOM中寻找的类或ID上的错误。我试图让Add2Any菜单的顶部div / title关闭菜单。我确定我的点击功能还有其他问题,但我相信我的问题在于我需要的ID(#a2apage_DEFAULT),目标还没有被加载。我已经尝试在模块的相关信息文件中调用脚本,并通过主题的信息文件没有运气。我收到第一个警报,然后查看开发工具,我在#a2apage_DEFAULT上看到了Uncaught TypeError。任何建议将不胜感激。

jQuery(window).load(function () {
    Drupal.behaviors.cee = {
        attach: function(context, settings){
            console.log("attach");
            $('#a2apage_DEFAULT').click(function() {
                console.log("click");
                $(this).parent('#a2apage_dropdown').css('display','none');
            })
        }
    };
} (jQuery));

2 个答案:

答案 0 :(得分:1)

猜测,错误可能与您使用$有关,而没有为该变量分配任何内容。

这应该有效:

(function($) {
  Drupal.behaviors.cee = {
    attach: function(context, settings){
      console.log("attach");
        $('#a2apage_DEFAULT').click(function() {
          console.log("click");
          $(this).parent('#a2apage_dropdown').css('display','none');
        })
      }
    };
})(jQuery);

答案 1 :(得分:0)

您应该等待加载文档而不是窗口

jQuery(document).load(function () {
    Drupal.behaviors.cee = {
        attach: function(context, settings){
            console.log("attach");
            $('#a2apage_DEFAULT').click(function() {
                console.log("click");
                $(this).parent('#a2apage_dropdown').css('display','none');
            })
        }
    };
} (jQuery));