JQuery 引發(fā)兩次$(document.ready)事件
更新時(shí)間:2010年01月15日 01:42:34 作者:
ASP.net MVC 做了個(gè)工程,不知道為什么Search按就總是執(zhí)行兩次。
頁(yè)面大概是這樣的,一個(gè)Partial View,而這個(gè)View包含了一小段綁定Search的Javascript,并且用Jquery-ui 的dialog 包含,而且確定不是ASP.net mvc生成HTML的問(wèn)題,HTML是依照我的想法生成的,后來(lái)實(shí)在沒(méi)有辦法,把dialog的代碼去掉,Search按就正常了。查了一下dialog的代碼,發(fā)現(xiàn) 是appendTo引發(fā)的。
做了實(shí)驗(yàn),代碼如下:
代碼
<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>
預(yù)計(jì) alert('a1') 應(yīng)該執(zhí)行一次的,但是由于使用了appendTo,執(zhí)行了兩次,無(wú)論你在 a1 div里面是否使用$(document).ready,都會(huì)運(yùn)行兩次javascript,第一次document 加載完成,第二次是調(diào)用 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;
}
});
做了實(shí)驗(yàn),代碼如下:
代碼
復(fù)制代碼 代碼如下:
<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>
預(yù)計(jì) alert('a1') 應(yīng)該執(zhí)行一次的,但是由于使用了appendTo,執(zhí)行了兩次,無(wú)論你在 a1 div里面是否使用$(document).ready,都會(huì)運(yùn)行兩次javascript,第一次document 加載完成,第二次是調(diào)用 appendTo.
首先改為下面這種方式,失敗。
代碼
復(fù)制代碼 代碼如下:
<div id="a1">
<script type="text/javascript">
loaded = false;
if (loaded == false) {
alert('a1');
loaded = true;
}
</script>
</div>
再改成下面這種,就可以成功了。
復(fù)制代碼 代碼如下:
var loaded = false;
$(document).ready(function() {
if (!loaded) {
alert('a1');
loaded = true;
}
});
您可能感興趣的文章:
- jquery $(document).ready() 與window.onload的區(qū)別
- jQuery之$(document).ready()使用介紹
- JQuery onload、ready概念介紹及使用方法
- jquery中的$(document).ready()使用小結(jié)
- Jquery中"$(document).ready(function(){ })"函數(shù)的使用詳解
- jquery的$(document).ready()和onload的加載順序
- jquery ready()的幾種實(shí)現(xiàn)方法小結(jié)
- jquery中的$(document).ready()與window.onload的區(qū)別
- 用javascript實(shí)現(xiàn)jquery的document.ready功能的實(shí)現(xiàn)代碼
- jQuery 的 ready()的純js替代方法
相關(guān)文章
輕量級(jí)jQuery插件slideBox實(shí)現(xiàn)帶底欄輪播(焦點(diǎn)圖)代碼
這篇文章主要介紹了輕量級(jí)jQuery插件slideBox實(shí)現(xiàn)帶底欄輪播(焦點(diǎn)圖)代碼,代碼簡(jiǎn)單易懂,非常實(shí)用,特此分享腳本之家平臺(tái)供大家學(xué)習(xí)2016-03-03JQuery單選按鈕Radio和復(fù)選框checkbox的操作代碼
這篇文章主要介紹了JQuery單選按鈕Radio和復(fù)選框checkbox的操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04jquery中ajax函數(shù)執(zhí)行順序問(wèn)題之如何設(shè)置同步
這篇文章主要介紹了jquery中ajax函數(shù)執(zhí)行順序問(wèn)題之如何設(shè)置同步,需要的朋友可以參考下2014-02-02用jquery實(shí)現(xiàn)自定義風(fēng)格的滑動(dòng)條實(shí)現(xiàn)代碼
用jquery實(shí)現(xiàn)自定義風(fēng)格的滑動(dòng)條的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-04-04jQuery中closest和parents的區(qū)別分析
本文給大家介紹jquery中parents()和closest()用法與區(qū)別介紹,在jquery中parents()查找父級(jí)元素刪除的時(shí)候,發(fā)現(xiàn)它不包含根元素,于是用了closest(),效果不錯(cuò),下面我來(lái)給大家具體的介紹一下2015-05-05