jquery元素没有定义,但它曾经跳过它

时间:2010-05-20 00:56:05

标签: javascript jquery

我最近将网站转移到了新主机。重新加载所有内容,之前工作正常的javascript打破了它找不到的元素。 $('#emailForm')未定义。

现在,#emailform不在页面上,但它之前也没有,并且JS曾经跳过这个并且它会起作用。不知道为什么会这样。任何线索

以下是我遇到问题的网站:

http://rosecomm.com/26/gearwrench/

3 个答案:

答案 0 :(得分:2)

如果没有$('#emailForm')的元素,

jQuery id='emailForm'返回一个空的jQuery对象。

以下其中一项可能属实:

  • 您忘记包含jQuery - 因此$未定义。
  • 还包含另一个使用$的库 - 在这种情况下,您可以将代码包装在一个快速关闭中,以便将jQuery重命名为$

关闭:

(function($){ 
   // $ is jQuery
   $('#emailForm').whatever();
})(jQuery);

你可以在firebug中console.log(window.$,window.jQuery);来检查这两个问题。

答案 1 :(得分:2)

你也安装了mootools-1.2.2-core-yc.js,它与jQuery冲突。

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

$(document).ready(function() {

(function($){

 // bind 'myForm' and provide a simple callback function
 $('#emailForm').ajaxForm(function() {
     var txt=document.getElementById("formReturn")
     txt.innerHTML="<p>Thank You</p>";
 });
... 
正在针对moo工具库而不是jQuery调用

$(document).ready

答案 2 :(得分:0)

我不确定为什么之前会跳过它,但为了避免错误,请在$('#emailForm')语句中包含引用if的语句,以检查它是否存在:

if ( $('#emailForm').length ) {
    // code to handle $('#emailForm') goes here...
}