SORU
30 Aralık 2008, Salı


JQuery özel olaylar?

Özel bir WordPress kullanmak en iyi yol eventhandling uygulamak için bazı giriş arıyorum. 'Klik' vb, ama küçük bir javascript kuruyorum eklenti bir önizleme işlemek için işlevsellik library/. dom gibi doğa olayları takmak için nasıl biliyorum

Bende bir komut dosyası çalıştırmak için güncelleme bazı metin bir dom öğesi bir dizi kurallar ve veri/kullanıcı giriş var, ama şimdi ihtiyacım olan aynı metin içinde gösterilen diğer elemanları bu senaryoyu mümkün değil. İhtiyacım olan şey bir şekilde bu komut gerekli metni üreten gözlemlemek için iyi bir model.

Bunu nasıl yapabilirim? Bazı jquery işlevselliğini artırmak için yerleşik görmezden/kullanıcı olayları yaptım ya da bunu yapmak için bazı jquery plugin ihtiyacım var mı? Bu işlemek için eklenti/en iyi yolu nedir sizce?

CEVAP
30 Aralık 2008, Salı


Bu bir göz atın:

(http://web.archive.org/web/20130120010146/http://jamiethompson.co.uk/web/2008/06/17/publish-subscribe-with-jquery/ arşivlenmiş sürümüne süresi blog sayfası http://jamiethompson.co.uk/web/2008/06/17/publish-subscribe-with-jquery/ yeniden basıldı)


/ JQuery İle Abone yayınlayın

17 Haziran, 2008

JQuery UI işlevselliği Google Gears of offline ile entegre yazmak üzere ağ bağlantısı durumu jQuery kullanarak yoklamak için bazı kod ile oynuyor oldum.

Ağ Algılama Nesnesi

Temel olay aslında çok basit. Düzenli aralıklarla bir URL anket hangi ağ algılama bir nesne örneği oluşturuyoruz. Bu HTTP istekleri ağ bağlantısı kesildi varsayabiliriz başarısız olması, ya da sunucu sadece şu anda ulaşılamıyor.

$.networkDetection = function(url,interval){
    var url = url;
    var interval = interval;
    online = false;
    this.StartPolling = function(){
        this.StopPolling();
        this.timer = setInterval(poll, interval);
    };
    this.StopPolling = function(){
        clearInterval(this.timer);
    };
    this.setPollInterval= function(i) {
        interval = i;
    };
    this.getOnlineStatus = function(){
        return online;
    };
    function poll() {
        $.ajax({
            type: "POST",
            url: url,
            dataType: "text",
            error: function(){
                online = false;
                $(document).trigger('status.networkDetection',[false]);
            },
            success: function(){
                online = true;
                $(document).trigger('status.networkDetection',[true]);
            }
        });
    };
};

Burada demo görebilirsiniz. Tarayıcınız çevrimdışı çalışmak için ayarlanmış ve ne olduğunu görün.... hayır, çok da heyecan verici değil.

Tetik ve Bağlama

Heyecan verici olsa da (ya da en azından bana heyecan verici nedir, ne zaman, hangi durum uygulama aracı alır yöntemi. Pub/sub sistemi uygulama un-büyük ölçüde tartışılan bir yöntem üzerine bir WordPress kullanmak tetikleyicisi ve bağlama yöntemleri kullanarak denk geldim.

Demo kodu olması gerekenden daha kalın kafalı. Ağ algılama nesne durumu ’aktif sırayla onlar için ve dinleyen belgeye olayları yayımladığı ‘bildir’ tüm abonelere olaylar (daha o daha sonra). yayınlar Bunun arkasındaki mantık, gerçek bir uygulama muhtemelen daha mantık biraz kontrol ne zaman ve nasıl ‘olaylar yayınlanmaktadır. haberdar olacak.

$(document).bind("status.networkDetection", function(e, status){
    // subscribers can be namespaced with multiple classes
    subscribers = $('.subscriber.networkDetection');
    // publish notify.networkDetection even to subscribers
    subscribers.trigger("notify.networkDetection", [status])
    /*
    other logic based on network connectivity could go here
    use google gears offline storage etc
    maybe trigger some other events
    */
});

JQuery DOM merkezli bir yaklaşım nedeniyle olaylar (tetiklenen) elemanları DOM yayınlanmaktadır. Bu genel olaylar için Pencere veya belge nesnesini veya bir WordPress kullanmak bir nesne seçici kullanarak oluşturabilirsiniz. Demo ile aldım yaklaşım aboneler tanımlamak için neredeyse namespaced bir yaklaşım oluşturmaktır.

Aboneler sınıflandırılır için basit olan DOM elemanları “” ve“”. networkDetection abone ile Sonra bir olay bildirmek tetikleyerek sadece bu unsurları olan demo sadece bir tane var () olayları basabiliriz$(“.subscriber.networkDetection”)

#notifierabone .subscriber.networkDetection grubunun bir parçası olan div anonim bir fonksiyonu bağlı, etkin bir dinleyici olarak hareket etti.

$('#notifier').bind("notify.networkDetection",function(e, online){
    // the following simply demonstrates
    notifier = $(this);
    if(online){
        if (!notifier.hasClass("online")){
            $(this)
                .addClass("online")
                .removeClass("offline")
                .text("ONLINE");
        }
    }else{
        if (!notifier.hasClass("offline")){
            $(this)
                .addClass("offline")
                .removeClass("online")
                .text("OFFLINE");
        }
    };
});

Bu yüzden, buyurun. Oldukça ayrıntılı ve benim örnek hiç heyecan verici değil. Ayrıca bir şey bu yöntemler ile yapabileceğiniz ilginç vitrin yok, ama eğer herkes bu kaynağı kazmak eğer ilgilenen olursa çekinmeyin. Tüm kod demo sayfa başına satır içi

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • J Medema

    J Medema

    11 EKİM 2006
  • LatinNinja99

    LatinNinja99

    28 EKİM 2011
  • sdasmarchives

    sdasmarchive

    2 HAZİRAN 2010