为了账号安全,请及时绑定邮箱和手机立即绑定

一个内联事件问题?

一个内联事件问题?

Qyouu 2018-10-09 09:45:04
在做业务的过程中发现一个问题,如果在html内给元素绑定事件(内联事件).如果在test脚本中直接定义action函数,是可以的;但是套在$(function(){})中问题出现了ReferenceError: action is not defined.开始以为是浏览器渲染的前后顺序问题,继而把test脚本放在button元素后,但是如果不包含在$(function(){})的话,还是可以的,否则还是报错.网上搜了下没发现问题,希望大家给解释下 为什么会出现这种问题? 谢谢大家<!DOCTYPE html><html lang="en">     <head>         <meta charset="UTF-8" />         <meta name="Author" content="" />         <meta name="Keywords" content="" />         <meta name="Description" content="" />         <title>测试页面</title>                 <script src="./jquery-1.11.3.min.js"></script>         <script src="./test.js"></script>         </head>     <body>         <input type="button" id="btn" value="点击" onclick="action()" />         </body></html>$(function(){    function action(){         alert('clicking...');     } });
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

作用域的问题吧....调用action() 函数的时候是在全局作用域找这个函数的,无法访问闭包里面的函数。。。function action(){} 我改成 window.action = function(){} 的时候是可以alert的.....


查看完整回答
反对 回复 2018-11-05
  • 1 回答
  • 0 关注
  • 471 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信