SORU
18 Mayıs 2010, Salı


JavaScript/JQuery: (pencere)$.boyutlandırma tamamlandıktan SONRA yangın nasıl yeniden boyutlandırmak?

Bir WordPress kullanmak gibi: kullanıyorum

$(window).resize(function() { ... });

Ancak, eğer kişi elle daha büyük/daha küçük hale getirmek için pencere kenarına sürükleyerek tarayıcı pencereleri yeniden boyutlandırır, yukarıda .resize olay birden çok kez yangın gibi görünüyor.

Soru:Nasıl ben arayıp tarayıcı penceresi yeniden boyutlandırmak tamamladıktan SONRA bir işlevi olay sadece bir kez tetiklenmesi ()?

CEVAP
27 Aralık 2010, PAZARTESİ


İşte kod birden fazla yerde çağrılabilir CMS çözümü bir değişiklik:

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);
  };
})();

Kullanımı:

$(window).resize(function () {
    waitForFinalEvent(function(){
      alert('Resize...');
      //...
    }, 500, "some unique string");
});

CMS çözümü iyi olursa sadece Ara bir kez, ama eğer bunu birden çok kez, örneğin eğer farklı parçaları kodunuzu ayarlamak ayrı geri aramaları için pencereyi yeniden boyutlandırmak, sonra başarısız b/c paylaştıkları timer değişken.

Bu değişiklik ile, her bir geri arama için benzersiz bir kimlik sağlamak ve bu benzersiz Kimlikler her zaman aşımı olayları ayrı tutmak için kullanılır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • hanksranger

    hanksranger

    6 EKİM 2009
  • Nightmare2005

    Nightmare200

    14 Ocak 2007