SmoothState.js不能与自定义编写的jQuery一起使用

时间:2016-02-16 09:18:16

标签: jquery ajax content-management-system

我正在网站上工作,它是由drupal 7制作的,我正在尝试添加SmoothState.js以受益于ajax和令人敬畏的动画。 积极的一面是SmoothState.js完美运行,所有动画都是如此。

问题在于我似乎无法将SmoothState与我之前编写的jQuery片段一起使用。

简而言之,我已经创建了一个菜单块 - 子菜单 - 子子菜单,并使用jQuery> s。(function(){})为下拉菜单设置了动画。在集成SmoothState之后,如果jQuery片段正常工作,或者如果我将片段评论为smoothstate,则smoothstate不起作用。

这是jQuery的片段



$(".menu li").click(function() {
  event.stopPropagation();
  $("> ul", this).slideToggle("fast").parent("li").toggleClass("arrowChange");
});




P.S。 - 我有另一个jQuery代码完美地工作,没有任何中断,在滚动上添加或删除类。顺便说一下,我是jquery的初学者。

1 个答案:

答案 0 :(得分:0)

要使其正常工作,您需要确保正确包含自定义jquery。您需要阅读Drupal behavior attachment,但基本上,请确保您的脚本封装在如下所示的内容中:

Drupal.behaviors.my_custom_behavior = {
  attach: function(context, settings) {
  // your code goes here
}

然后在用于调用smoothState的函数js中,确保调用Drupal.attachBehaviors();它将运行您的自定义JS,以及使用行为附件的任何其他模块。

所以在你的smoothState调用中包含这样的东西:

onAfter: function() {
    Drupal.attachBehaviors();
}