SORU
17 Mart 2010, ÇARŞAMBA


JQuery ile satır içi stilleri kaldırmak mümkün mü?

Bir jQuery eklentisi bir satır içi stil (display:block) ayırıyor. Kendimi tembel hissediyorum ve display:none ile geçersiz kılmak istiyor.

(Tembel) en iyi yolu nedir?

CEVAP
1 Temmuz 2011, Cuma


Güncelleme:aşağıdaki çözüm çalışır, çok daha kolay bir yöntem var. Aşağıya bakın.


İle, ve bu işe yarar umarım - geldim işte sen ya da bir başkası için:

$('#element').attr('style', function(i, style)
{
    return style.replace(/display[^;] ;?/g, '');
});

Bu satır içi stil kaldıracaktır.

İstediğinin bu olduğundan emin değilim. Zaten işaret ettiği gibi, kolayca $('#element').css('display', 'inline') tarafından yapılan iptal ettin.

Aradığım şeyi satır içi stili tamamen KALDIRMAK için bir çözüm oldu. Geçici olarak bazı satır içi CSS değerlerini ayarlamak için aldığım yere yazıyorum bir eklenti için buna ihtiyacım var, ama daha sonra bunları kaldırmak istiyorum; stil kontrolü tekrar almak istiyorum. Orijinal değerleri saklamak ve daha sonra tekrar içi koyarak yapabilirim, ama bu çözüm çok daha temiz geliyor.


Burada eklenti biçimi:

(function($)
{
    $.fn.removeStyle = function(style)
    {
        var search = new RegExp(style   '[^;] ;?', 'g');

        return this.each(function()
        {
            $(this).attr('style', function(i, style)
            {
                return style.replace(search, '');
            });
        });
    };
}(jQuery));

Eğer betik daha önce sayfasında bu eklenti eklerseniz, o zaman ararsın

$('#element').removeStyle('display');

ve bu hile yapmak gerekir.


GüncellemeBen de tüm bu beyhude olduğunu fark etti. Sadece boş ayarlayabilirsiniz:

$('#element').css('display', '');

ve sizin için otomatik olarak çıkacak.

İşte the docs bir alıntı:

Ayar değerini bir stil özelliği için boş bir dize — örneğin $('#mydiv').css('color', '') — kaldırır bu özellik bir elemanı ise zaten doğrudan uygulanan, ister HTML stil özniteliği, bir WordPress kullanmak .css() yöntem veya doğrudan DOM manipülasyon tarzı özelliği. Ancak, stil veya <style> element CSS kuralı ile uygulanan bir stil kaldırmaz.

JQuery herhangi bir sihir burada; it seems the style object does this natively sanmıyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jabari Johnson

    Jabari Johns

    18 Ocak 2008
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • Marques Brownlee

    Marques Brow

    21 Mart 2008