自定义jQuery扩展不适用于Drupal

时间:2011-07-08 21:00:00

标签: jquery drupal this-keyword

尝试将自定义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中运行良好。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

如果没有看到您的代码,很难给出一个很好的答案。我在前一段时间遇到类似(听起来)的问题并使用这种技术在Drupal 7网站上包装内联JQuery,这解决了我的问题:

(function($) {
    $(document).ready(function(){

        // Insert your code here.

    });
})(jQuery);

问题在于Drupal 7对命名空间是严格的,并且不允许默认的$作为函数别名,就像你在Drupal 6中所做的那样。

答案 1 :(得分:0)

Drupal中的另一项技术是将jQuery包装在其中:

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