1.元素 is not defined
使用 $("#元素ID").click(function(){}) 进行元素的方法绑定时,并没有放在
(1)$(document).ready()
(2)$(function(){})
(3)windom.onload = function(){};
这种在DOM元素加载完成之后在进行JS运行的方法块儿中,导致该元素在被加载之前运行
2.方法 is not defined
使用$(function(){ function 方法名(){} }) 和 οnclick=方法名(this); (行内JS) 的联用
js亦存在作用域,当你的方法声明在 $(function{}) 之中时,表示该方法只能在该方法内部被使用
而在触发点击事件 onclick 时,它是在 Windows 域中寻找方法,当然无法找到
3.代码层面判断某元素,方法是否存在
<html>
<head>
<title> js判断某个方法、对象是否存在</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript">
window.onload = function(){
try{
if(test && typeof(test) == "function"){
test();
}
}catch(e){
alert("方法不存在");
}
}
function test(){
alert("我是test()方法");
}
</script>
</head>
<body>
</body>
</html>
try{
if(test && typeof(test) == "function"){
test();
}
}catch(e){
alert("方法不存在");
}
其中 try-catch 代码块儿为核心,test可以替换成你想检测的任意元素,并且插入到方法的各个位置进行更直观的检测。