解决JS中 元素,方法 is not defined 报错的方案

 

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可以替换成你想检测的任意元素,并且插入到方法的各个位置进行更直观的检测。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值