jQuery脚本没有在Drupal上工作

时间:2017-09-18 11:15:11

标签: javascript jquery drupal drupal-7

我收到了这个脚本http://jsfiddle.net/j999y/2878/

(function($){
  Drupal.behaviors.mymodule = {
    attach: function(context, settings) {
      $( ".myelement" ).click(function() {     
         $('.another-element p').toggle("slide", { direction: "down" }, 1000);
      });
    }
  };
})(jQuery);

通过JS Injector模块注入我的Drupal网站,当你点击Toggle它隐藏/显示元素时,它适用于JSFiddle,但不适用于Drupal?

我想,也许JS Injector是问题,所以我运行了另一个简单的测试,例如

(function($){
  Drupal.behaviors.mymodule = {
    attach: function(context, settings) {
     $("html, body").animate({ scrollTop: $('#buttons').offset().top }, 1000);
    }
  };
})(jQuery);

它运作得很好!

为什么切换脚本不起作用?

(我在Drupal上发布了这个答案,他们把它搁置在offtopic上并指示到这里)

1 个答案:

答案 0 :(得分:0)

我认为在查询DOM时应该使用context。此外,使用.once()将确保您的点击处理程序仅连接(因此,运行)一次:

attach: function(context, settings) {
  $(".myelement", context).once('click-slide-toggle').click(function() {
     $('.another-element p', context).toggle("slide", { direction: "down" }, 1000);
  });
}