JQuery 引发两次$(document.ready)事件


Posted in Javascript onJanuary 15, 2010

页面大概是这样的,一个Partial View,而这个View包含了一小段绑定Search的Javascript,并且用Jquery-ui 的dialog 包含,而且确定不是ASP.net mvc生成HTML的问题,HTML是依照我的想法生成的,后来实在没有办法,把dialog的代码去掉,Search按就正常了。查了一下dialog的代码,发现 是appendTo引发的。
做了实验,代码如下:
代码

<script type="text/javascript"> 
$(document).ready(function() { 
$("#a1").appendTo($("#a2")); 
}); 
</script> <div id="a1"> 
<script type="text/javascript"> 
alert('a1'); 
</script> 
</div> 
<div id="a2"> 
</div>

预计 alert('a1') 应该执行一次的,但是由于使用了appendTo,执行了两次,无论你在 a1 div里面是否使用$(document).ready,都会运行两次javascript,第一次document 加载完成,第二次是调用 appendTo.

首先改为下面这种方式,失败。
代码

<div id="a1"> 
<script type="text/javascript"> 
loaded = false; 
if (loaded == false) { 
alert('a1'); 
loaded = true; 
} 
</script> 
</div>

再改成下面这种,就可以成功了。
var loaded = false; 
$(document).ready(function() { 
if (!loaded) { 
alert('a1'); 
loaded = true; 
} 
});
Javascript 相关文章推荐
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
Jan 09 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
Dec 17 Javascript
jQuery动态加载css文件实现方法
Jun 15 Javascript
jQuery获取与设置iframe高度的方法
Aug 01 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
Nov 16 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 Javascript
详解JS异步加载的三种方式
Mar 07 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
Jun 17 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
Nov 30 Javascript
解决vue2中使用elementUi打包报错的问题
Sep 22 Javascript
原生js实现滑块区间组件
Jan 20 Javascript
vue ant design 封装弹窗表单的使用
Jun 01 Vue.js
用jQuery扩展自写的 UI导航
Jan 13 #Javascript
jQuery的一些特性和用法整理小结
Jan 13 #Javascript
JavaScript关于select的相关操作说明
Jan 13 #Javascript
海量经典的jQuery插件集合
Jan 12 #Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 #Javascript
jquery下操作HTML控件的实现代码
Jan 12 #Javascript
jquery插件 cluetip 关键词注释
Jan 12 #Javascript
You might like
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
python list格式数据excel导出方法
2018/10/31 Python
python调用java的jar包方法
2018/12/15 Python
在python 中实现运行多条shell命令
2019/01/07 Python
华丽的手绘陶瓷:MacKenzie-Childs
2017/02/04 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
介绍一下JMS编程步骤
2015/09/22 面试题
销售团队口号大全
2014/06/06 职场文书
上海世博会口号
2014/06/19 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
给老师的感谢信
2015/01/20 职场文书
母亲节寄语大全
2015/02/27 职场文书
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL