2010-03-29 30 views
10

yapın Bir elemanın eklenmesi durumunda, sınıfın etkin olup olmadığını kontrol etmek istiyorum: margin-top: 4px;jQuery - Yalnızca bir kez

Ancak, yalnızca bu sayfa numaralı sayfada oluşmasını istiyorum, sayfa yüklendiğinde, sınıf algılandıktan sonra tekrar algılayıp CSS stilini eklemek istemiyorum.

Bu sınıf, belirli öğeler üzerinde gezinildiğinde uygulanır.

JQuery'de bu mümkün mü?

cevap

22

one olayına göz atın. Documented örnek:

$('#foo').one('click', function() { 
    alert('This will be displayed only once.'); 
}); 
+0

"Bir" dans sorunu çözecek sanmıyorum. Belgelere hazır olması mümkün mü? – hunter

+3

@Hunter - "Bu, belirli öğeler üzerinde durulduğunda sınıf uygulanır." Bu da, bazı öğeler üzerinde sadece bir kez ateş etmek için bir mouseover olayı istediğine inanmamı sağladı. Yanlış olabilirdim elbette, bu durumda cevabın muhtemelen gidilecek yoldur. – karim79

+0

great @ karim79 bu iyi çalışıyor :) –

3

Bu sayfa yük

$(function(){ 
    if ($("#elementid").hasClass("active")) 
    { 
     $("#elementid").css("margin-top", "4px"); 
    } 
}); 
+0

Bu durumda "bir" gerektiğini düşünüyorum. Bu çözümü kullanarak çalışacak --- document.ready sadece bir kez ateşler. – macca1

2

Bunu genelde yolu üzerinde bir kez ateş edeceği geçerli:

(function($) { 

    // my custom function to process elements 
    function myProcessFunction(context) { 

    // get context  
    context = context || document; 

    // select elements within the context, filter out already processed ones 
    // loop through remained (unprocessed) elements 
    // '.my-class' - selector for the elements I want to process 
    $('.my-class:not(.my-class-processed)', context).each(function(i.e){ 

     // mark the element as processed 
     $(e).addClass('my-class-processed'); 

     // add process code here 

    }); 
    } 

    // run myProcessFunction on document.ready 
    $(document).ready(function(){ 
    myProcessFunction(); 
    }); 

})(jQuery); 

Bu şekilde ben:

  • yeniden kullanılabilir işlev
  • işlenmiş elemanlar işaretlenir ve fonksiyon
  • elemanları belirtilmişse yalnızca (örneğin, HTML kodunu bir AJAX isteği üzerinden döndürülen) bağlamında

Umut bu içinde işlenir denir dahaki işleme konmayacaktır yardımcı olur

İlgili konular