自定义jQuery扩展不适用于Drupal



尝试将自定义jQuery扩展绑定到Drupal 7中,我在脚本中遇到了"this"对象的问题。

我的代码被正确包装以支持无冲突,并且在drupal之外工作良好,但是相同的代码在drupal页面上失败。

我将console.log(this)添加到扩展的顶部,发现在drupal之外,我得到了一个适当的jQuery对象,其中包含匹配的节点。在drupal中,我只得到匹配的元素。

Drupal 7有jQuery 1.4.4,我的代码在jQuery 1.4.2和1.6.2中运行良好。

我该怎么办?

如果没有看到您的代码,很难给您一个很好的答案。我之前也遇到过类似的问题,我使用这种技术在Drupal 7站点上包装内联JQuery,这解决了我的问题:

(function($) {
    $(document).ready(function(){
        // Insert your code here.
    });
})(jQuery);

问题是Drupal 7对命名空间很严格,不允许默认的$作为函数别名,而你可以在Drupal 6中这样做。

Drupal中的另一项技术是将jQuery封装在下面:

jQuery(document).ready(function($) {
  // Insert code here.
});

相关内容

最新更新