js中在window.onload中调用function函数遇到的疑惑
来源:互联网 发布:办公楼网络改造方案 编辑:程序博客网 时间:2024/05/24 01:50
今天在jsp中的form表单利用onclick=”xxx”来监听js中一个function xxx(){}函数,遇到一个很奇怪的问题就是点击submit按钮之后竟然没有响应xxx()函数。在这之前我已经多次在form表单中利用onclick=”xxx”来监听一个函数,并没有出现过这种情况。这经过多次尝试后,和具体分析,与之前的对比,终于找到为何会出现这个问题。为了直插问题所在我用一个实例的代码来说明问题。
jsp代码:<form action="/interviweText/ajaxSort" method="post"><input type="text" name="number" id="number"/><input type="submit" id="tijiao" onclick="cphclick();" value="提交"/></form>js代码:<script type="text/javascript">window.onload=function(){ alert("hahaha"); function cphclick(){ alert("xixixi"); }}</script>
就是这个很简短的代码 ,当运行这个jsp之后自动弹出“hahaha”对话框,这个没有问题,当jsp页面加载完成之后会自动运行window.onload中的代码。但问题就出现在当我点击“提交”按钮之后并没有弹出“xixixi”对话框。初一看没有问题啊,我已经onclick=”cphclick();”监听cphclick()函数了,理应跳出来“xixixi”对话框才对。并且这样之前也用过了,查看之前的js代码发现当把cphclick()函数提到外面点击”提交”就可以弹出“xixixi”对话框。js修改如下:
<script type="text/javascript">window.onload=function(){ alert("hahaha"); }function cphclick(){ alert("xixixi");}</script>
这时也许机敏点的同学可能想到了是作用域的问题。对没错就是作用域的问题。加上window.onload后改变了cphclick()函数的作用域,使其成为内部函数,故而onclick=”“无法访问到这个函数,而放到外面cphclick()是绑定在window上的,所以onclick=”“能够访问到。
那么现在又有一个新的需求,我就是想在页面加载完成之后再执行函数怎么办,其实我们可以改变onload()里面函数的作用域为绑定在window上的,用的方法就是对象.函数。实例:
<script type="text/javascript">window.onload=function(){ alert("hahaha"); var tijiao=document.getElementById("tijiao"); tijiao.cphclick=function(){ alert("xixixi"); }}</script>
- js中在window.onload中调用function函数遇到的疑惑
- 关于onclick = “函数()”中不能调用window.onload = function(){}中调用function 函数(){}
- js中window.onload
- js中window.onload和普通函数
- js中onload和$(function(){})的区别
- jQuey中的$(document).read(function(){})与js中window.onload的区别?
- window.onload $(function(){})中drawimage失灵
- 在Window.onload中加载/执行多个函数
- 在JS中一个function函数要调用另一个函数里的变量。
- Javascript中函数调用的疑惑积累
- 页面加载完成之后执行js函数window.onload 和 $().ready(function) 以及 <body onload="">的同级函数详解
- js中window.onload时间不能保存多个函数引用的解决办法
- js中window.onload()与$(document).ready()的对比
- js中替换window.onload的方法 document.ready
- angular.js中window.onload(),$(document).ready()的写法
- js中window.onload添加事件
- JS中window.onload事件详解
- JS中页面加载事件window.onload、onload()、document.onclick
- cb2的wifi网络
- 设计模式思考
- 从事件冒泡到事件委托,进而实现动态绑定事件
- telnet远程登录操作
- git忽略已被提交的文件
- js中在window.onload中调用function函数遇到的疑惑
- Pronunciation
- Weex基于Vue2.0开发框架模板搭建
- 梦想的开端
- L1-011. A-B
- Android基础之初识Broadcast Receiver
- Java设计模式《四》代理模式
- 工作流系统的组成
- src和href的区别