為什麼jquery的resize方法監聽一個元素不生效?

代碼如下:

$(#content).resize(function(){

debugger

})

當content元素的高改變時進不去這個方法,為什麼咧?


因為 DOM 元素尺寸變化不會觸發 resize 事件。

直到 Chrome 64 才有了真正可以監聽元素尺寸變化的 ResizeObserver,在這之前只能用各種不完美的 hack 去模擬,都有無法覆蓋的場景和副作用。

我之前基於 sdecima/javascript-detect-element-resize 改造了一個用了多種降級方案的版本,見 Justineo/resize-detector,可以嘗試一下。(README 里還有對現有多個方案的詳細比較)


建議還是多看文檔,理解真正的意思。

不要拿函數的名字當成自己的理解。resize 的意思是調整大小沒錯,但是這個函數在定義的時候,就只是監聽瀏覽器窗口的。如果當時命名成 windowResize 那題主是不是就沒這個疑問了?

不知道題主能不能理解我想表達的意思。


瀉藥。

--------------------- 我是小白,答案僅供參考 ----------------------------------------------------

resize()方法:當調整瀏覽器窗口的大小時,發生 resize 事件。

本質應該是調用了js的onresize事件(在窗口或框架被調整大小時發生),改事件支持的JavaScript對象只有window


jquery 監聽div大小變化函數|div resize事件?

www.itshij.com圖標


當調整瀏覽器窗口的大小時,發生 resize 事件。

div的size發生了變化,但是window的size並沒有改變。 所以無效。

其他人的解決方法。https://www.cnblogs.com/zhtui/p/7059943.html


推薦閱讀:

細說JS的類型判斷
有沒有推薦設UI計師學的代碼,例如xcode,JQ等輕體量上手快的IDE,主要為了實現動效和前端對接?
React路由原生js來實現
有 C/C++ 的基礎,可以直接學習 jQuery 嗎?
類似於有道詞典的屏幕取詞功能可以用jQuery 實現嗎?

TAG:前端開發 | jQuery |