首頁 >web前端 >js教程 >如何在 JavaScript/jQuery 調整視窗大小後僅執行一次函數?

如何在 JavaScript/jQuery 調整視窗大小後僅執行一次函數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-04 15:58:01676瀏覽

How to Execute a Function Only Once After Window Resizing in JavaScript/jQuery?

JavaScript/jQuery 中視窗大小調整後延遲執行

瀏覽器時觸發JavaScript 和jQuery 中的$(window).resize 事件視窗調整大小。然而,在透過拖曳視窗邊緣手動調整大小期間,它經常會觸發多次。

實作單次呼叫:

調整大小後僅呼叫一次函數完成後,可以使用計時器來延遲執行,直到調整大小過程完成。這是一個解決方案:

解:

<code class="javascript">var waitForFinalEvent = (function () {
  var timers = {};
  return function (callback, ms, uniqueId) {
    if (!uniqueId) {
      uniqueId = "Don't call this twice without a uniqueId";
    }
    if (timers[uniqueId]) {
      clearTimeout (timers[uniqueId]);
    }
    timers[uniqueId] = setTimeout(callback, ms);
  };
})();</code>

用法:

<code class="javascript">$(window).resize(function () {
    waitForFinalEvent(function(){
      alert('Resize...');
      //...
    }, 500, "some unique string");
});</code>

用法:

用法:用法:這種方法確保回調函數在指定的延遲後僅被呼叫一次,從而為調整大小提供足夠的時間來完成並防止冗餘事件觸發。

以上是如何在 JavaScript/jQuery 調整視窗大小後僅執行一次函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn