中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery應用load()方法后js失效的問題分析與解決

發布時間:2020-06-17 19:24:17 來源:網絡 閱讀:5943 作者:pockry 欄目:web開發

load()方法算是最簡單的ajax了,非常方便,不過也有一些難以理解的地方。

比如不久前我出現了這樣一個問題:

我的代碼高亮是用pretty,它的特點是不破壞源代碼,用js動態使代碼著色,在載入正文后使用prettyPrint()函數使代碼高亮生效。

我在另一個頁面使用jQuery中的load()方法載入此頁面的正文,但是代碼區的高亮消失了,也就是說js代碼未運行。這是可以理解的,因為load()方法并未運行原網頁,而是將其當做數據傳輸,js根本未啟動。

但是我在后面又加上prettyPrint()也依然沒效果,再查看源代碼才發現一個重要的問題:load()方法并未改變源代碼,根本看不到我們load過來的正文內容。

我又使用find().is()來查找代碼區的<pre>標簽也顯示沒有。一段不存在的內容,應用prettyPrint()當然沒效果了。

那么,load過來的內容到底去哪兒了呢?它真的不存在于任何地方嗎?

不是這樣的。后來我想到了曾看過的一個load()方法的教程里,講的callback,這個以前我以為是針對load狀態進行的反應,比如如果load失敗可以通過這個顯示一個什么之類的。現在記起來了,當時那個教程里不是將load過來的內容淡入展現嗎?

這應該就是問題的關鍵了,于是我將prettyPrint()放入callback中,果然代碼高亮出現了。

于是我知道了,load()方法里的內容的生命周期只在這個load方法之內,過了就再也找不到了!要給其中的內容應用js,需要統統放到callback里!

具體代碼如下:

 

  1. $XX.load(url,function(){prettyPrint();}) 

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淅川县| 右玉县| 即墨市| 来凤县| 渭源县| 武宣县| 铁力市| 同仁县| 海南省| 紫阳县| 福安市| 天柱县| 秦皇岛市| 涪陵区| 新和县| 浦北县| 岳池县| 越西县| 龙江县| 大洼县| 盐津县| 北碚区| 三都| 隆化县| 南乐县| 高唐县| 湖南省| 齐齐哈尔市| 行唐县| 同心县| 商水县| 宜兴市| 洛川县| 姚安县| 讷河市| 乡城县| 南陵县| 云南省| 霍城县| 陈巴尔虎旗| 永和县|