最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

UpdatePanel和Jquery沖突的解決方法

 更新時(shí)間:2013年04月01日 18:24:01   作者:  
在第一次頁(yè)面加載時(shí),元素A的X效果正常,點(diǎn)擊B之后,頁(yè)面局部刷新,此時(shí),回到A,元素A失去X效果.后來(lái)了解了下頁(yè)面應(yīng)用了ASP.NET AJAX局部刷新,這就明朗了,估計(jì)是和JQUERY沖突了

在第一次頁(yè)面加載時(shí),元素A的X效果正常,點(diǎn)擊B之后,頁(yè)面局部刷新,此時(shí),回到A,元素A失去X效果.

開(kāi)始以為是前端我這到程序員那里出現(xiàn)問(wèn)題,但仔細(xì)檢查之后發(fā)現(xiàn)沒(méi)有,后來(lái)了解了下頁(yè)面應(yīng)用了ASP.NET AJAX局部刷新,這就明朗了,估計(jì)是和JQUERY沖突了。

問(wèn)題重現(xiàn): 1.ASP.NET AJAX在頁(yè)面中添加ScriptManager和UpdatePanel
2.在UpdatePanel中添加元素A
3.用jQuery對(duì)元素A添加X(jué)效果
4.在UpdatePanel中加一個(gè)Button B用作postback

這樣問(wèn)題就出現(xiàn)了。
分析1: UpdatePanel在應(yīng)用中主要用于局部刷新,避免整個(gè)頁(yè)面的Postback。UpdatePanel實(shí)現(xiàn)局部刷新的核心在于MicrosoftAjaxWebForm.js文件,它的局部刷新過(guò)程就是將頁(yè)面提交到服務(wù)端(包含ViewState),執(zhí)行服務(wù)端代碼后異步將在UpdatePanel內(nèi)的HTML進(jìn)行重新呈現(xiàn)。在此過(guò)程中,頁(yè)面的其它部分并沒(méi)有狀態(tài)更改。

分析2: jQuery可以通過(guò)簡(jiǎn)單的代碼對(duì)HTML元素添加各種屬性和事件句柄,我們可以在這里看到官方的文檔: Tutorials:How jQuery Works

在這里,我們可以得知,jQuery有個(gè)重要的事件標(biāo)記“ready”,一般對(duì)HTML元素的效果和事件句柄都通過(guò)這個(gè)ready事件來(lái)添加,如下: $(document).ready(function () { $(“p”).text(“The DOM is now loaded and can be manipulated.”); });

官方對(duì)此的說(shuō)明是:ready事件會(huì)在DOM完全加載后運(yùn)行一次,OK,至此,問(wèn)題的原因差不多明白了:

原因: 因?yàn)樵赨pdatePanel局部刷新之后,其中的元素A被重寫,而此時(shí)整個(gè)DOM樹并沒(méi)有重新加載,所以jQuery的ready事件并沒(méi)有觸發(fā),所以元素A就失去了原有的特效。

解決方案: 我們可以將ready事件中執(zhí)行的代碼提取出來(lái),然后通過(guò)捕獲ScriptManager的EndRequest事件,在每次UpdatePanel局部刷新之后執(zhí)行一次jQuery初始化代碼,如下所示: <script type=”text/javascript” > function slide(){ //here is code } function load() { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); } function EndRequestHandler() { slide(); } </script >

最后就是需要 添加 <body onload="load()" >

相關(guān)文章

最新評(píng)論

沧源| 宾川县| 手机| 沂源县| 余庆县| 洛宁县| 宣威市| 浠水县| 沧州市| 泊头市| 石阡县| 分宜县| 宁津县| 宁乡县| 宁晋县| 新宾| 门头沟区| 南漳县| 玉树县| 盐边县| 盐源县| 会同县| 卢湾区| 三都| 崇阳县| 凤翔县| 莲花县| 莫力| 突泉县| 泰州市| 永胜县| 祁门县| 扶绥县| 黄大仙区| 乐清市| 衡阳县| 鹿邑县| 古蔺县| 当阳市| 五家渠市| 丰台区|