jQuery,Uncaught TypeError

时间:2009-10-22 13:27:44

标签: javascript jquery

我的网页上有一些javascript代码正在将一些div加载到页面上。我还想为每个div添加onmouseenter和onmouseleave事件处理程序。我使用jquery添加这些处理程序,但我收到错误:

  

“对象[对象DOMWindow]的属性'$'不是函数”

我的代码看起来像这样,它在for循环中:

var newItem = document.createElement('div');
newItem.innerHTML = results[i];
newItem.setAttribute("id", "resultDiv_" + i.toString());
dropDown.appendChild(newItem);

//Error on next line...
$("resultDiv_" + i.toString()).bind("mouseenter", function() {
    $("resultDiv_" + i.toString()).css({ 'background-color': 'blue' });
});

有没有人知道为什么我会收到此错误,甚至错误意味着什么?

5 个答案:

答案 0 :(得分:9)

尝试使用$替换所有出现的jQuery

选择器$("resultDiv_" + i.toString())也不会返回任何元素。你可能意味着:$("#resultDiv_" + i.toString())

最后确保在DOM准备就绪时执行此代码,即内部:

jQuery(function() {
    // Put your code here
});

答案 1 :(得分:4)

你确定jQuery已正确加载吗?它可能与另一个JavaScript库发生冲突吗?

答案 2 :(得分:1)

(function ($) {
    // All your code here
})(jQuery);

这解决了我的问题。

答案 3 :(得分:0)

尝试这个怎么样?

      var newItem = document.createElement('div');
        newItem.innerHTML = results[i];
        newItem.setAttribute("id", "resultDiv_" + i.toString());
        dropDown.appendChild(newItem);

        //Error on next line...
        $("resultDiv_" + i.toString()).mouseenter( function() {
            $("resultDiv_" + i.toString()).css({ 'background-color': 'blue' });
        });

或确保$("resultDiv_" + i.toString())不是null。使用Firebug检查元素。

答案 4 :(得分:0)

你不妨试试这个:

  var newItem = jQuery('<div id="' + "resultDiv_" + i.toString() + '">+ results[i] + '</div');
  jQuery(dropDown).append(newItem);
  //Error on next line...
  newItem.mouseenter(function(){
      jQuery(this).css( 'background-color', 'blue');
  });

或者jQuery.noConflict可能会解决这个问题。