Drupal 不支持 jQuery 的美元符号,它会破坏我的 Facebook 吗?

Drupal does not support dollar sign for jQuery and its breaking my facebook?

当我包含 Facebook API 时,我收到错误:

Uncaught ReferenceError: $ is not defined

原因是 Drupal 7 允许:

jQuery(....

但不是

$(....

但 Facebook JS API 实际上使用

$(....

如何使 Drupal 支持 $( 注释或解决此问题的正确方法是什么?

更新

我假设这里必须有所改变:

(function(d){
   var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
   js = d.createElement('script'); js.id = id; js.async = true;
   js.src = '//connect.facebook.net/en_US/all.js';
   d.getElementsByTagName('head')[0].appendChild(js);
}(document));

?

How can I make Drupal support $

要使其正常工作,只需将您的代码包装在该函数中即可:

(function ($) {
  //your code, now you can use "$" with no problems
})(jQuery);

这是一个 official suggestion

不过,您也可以通过其他方式进行。例如,添加

var $ = jQuery;

在 JS 代码的开头也应该有效。

您也可以使用 jQuery Dollar 模块。