我最近将网站转移到了新主机。重新加载所有内容,之前工作正常的javascript打破了它找不到的元素。 $('#emailForm')未定义。
现在,#emailform不在页面上,但它之前也没有,并且JS曾经跳过这个并且它会起作用。不知道为什么会这样。任何线索
以下是我遇到问题的网站:
答案 0 :(得分:2)
$('#emailForm')
的元素, jQuery 将从id='emailForm'
返回一个空的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...
}