1

这让我快疯了。

所以每次我在 jQuery 事件中使用 $(this) 时,我都会得到 TypeError: $ is not a function。

这是我正在使用的代码示例:

$ ->
 $(".some-element").click ->
  if $(this).hasClass("someClass")
   do something

编译为:

$(function() {
 $(".some-element").click(function() {
  if ($(this).hasClass("someClass")) {
   do something
  }
 });
});

奇怪的是,如果我将 $(this) 更改为 jQuery(this),代码可以完美运行。

任何建议将不胜感激。

更新

我在页面上有一个 CKeditor 元素,它是使用 ckeditor gem helper 标签创建的。我评论了这一点,所有的javascript都开始工作了。

4

1 回答 1

3

有冲突,使用.noConflict(),你应该解决它。

var $j = jQuery.noConflict();
// Do something with jQuery
$j("div p").hide();

// Do something with another library's $()
$("content").style.display = 'none';

http://api.jquery.com/jQuery.noConflict/


所以:

var $j = jQuery.noConflict();

$j(function() {
 $j(".some-element").click(function() {
  if ($j(this).hasClass("someClass")) {
   do something
  }
 });
});
于 2012-08-24T15:22:53.740 回答