遇到的一个JS原型的问题,已经解决
2014-06-04 01:30
260 查看
今天写代码的时候出现了一些问题。首先我的html文件是这样的
<div id = "tag_add" onclick="addUser()"></div>
恩恩,很清楚,调用了addUser()方法
var addUser = function () { var i=0; document.onkeydown = function(e){ var ev = document.all ? window.event : e; if(ev.keyCode==13) { submit_dialog(); } if(ev.keyCode==27) { quit_dialog(); } } function quit_dialog (){
/*隐藏了dialog的div*/ } $("#head_close,#bottom_canser").click(function() { quit_dialog(); }); function submit_dialog(){ alert(name+phone+plantNO); } $("#bottom_submit").click(function() { submit_dialog(); }); }
第一次调用,用鼠标点了submit,没有问题;第二次调用,恩?怎么alert弹出了两次??妈蛋的!第三次调用,好吧,alert弹出了三次了!
我立马想到了onclick调用函数是不是每次都要新建一个函数实例呢?javaEE有单例原型的概念,放到这种情况,应该就是js解释器每次都是新建了一个函数对象的单例了吧?前一个单例没有结束而后一个单例又被调用了才会出现这种问题??(这里求解啊!!)
于是我加了一段代码求证
var addUser = function () { var i=0; document.onkeydown = function(e){ var ev = document.all ? window.event : e; if(ev.keyCode==13) { submit_dialog(); } if(ev.keyCode==27) { quit_dialog(); } } function quit_dialog (){ /*隐藏了dialog的div*/ } $("#head_close,#bottom_canser").click(function() { quit_dialog(); }); function submit_dialog(){ alert(name+phone+plantNO); } $("#bottom_submit").click(function() { submit_dialog(); i++; console.log(i); }); }
然后查看了一下我的控制面板
恩,跟我想的一样!的确是新建了新的实例。正当我确认是这样的以后,却发现,用按键触发不会发生这些问题!是因为 var addUser = function () {} 这个每次访问的都是原型么?不懂求解啊!
很容易的想到了搜索js的原型怎么使用,prototype。以前略有耳闻,后来好久没写忘了...
问题还没解决,如果有高手解答不胜感激啊!
//-------------------------------------------------------------------------------------------------------------------------------------------
//2014.10.30
其实很简单,事件绑定了多次而已...
相关文章推荐
- 遇到的js问题,已经解决但不大明白(清洁工大哥来给讲讲)
- 【已经解决】安装oracle中遇到的一个小问题。。。
- 一个朋友js图表开发遇到的问题 解决思路c和js
- 遇到一个新问题。本问题已经解决
- 初学Flex,在使用Webservice时遇到Xml数据绑定的一个问题,试了N个方案,均没解决。
- 在部署Web工程时遇到的一个小问题,及解决方法
- 使用VS2005做VB项目时遇到的问题,现已经解决
- 在汇编程序中获得命令行参数(已经解决了以前遇到的问题)
- 解决使用Visual Studio 2005制作Windows Mobile安装包遇到的一个小问题
- 解决Sql Server2000重新安装时”已经有一个程序挂起“的问题。
- 昨天下午遇到一个问题,到晚上才解决。
- 怎么使LUMAQQ在WIN98下运行-已经自行解决,遇到同样问题的人请来看
- 在sps中遇到“不能添加用户,用户名已经存在”的问题的解决方法
- java中遇到的一个问题及解决方法
- 使用session时候,遇到的一个问题(请求解决方法)
- 项目中一个简单SQL查询问题,已经解决了,留个纪念,非常感谢帮我的朋友们。
- 一个ASP.NET2.0的问题,实在无法解决,请大家帮忙看看(放在首页一天后撤下,请DUDU原谅)问题已经解~~^_^
- 一个项目中遇到的若干问题-提出问题-分析问题-解决问题
- javascript(js)浮点数字精度问题的一个解决办法。