2010-05-27 24 views
8

düzgün çalışmıyor:jQuery val Basit jQuery fonksiyonu var Chrome

$('#selectable1 span').live('mousedown', function() { 
     var ff = $(this).css("font-family"); 
     $("#family").val(ff); 
}); 

bir yayılma elemanı tıklandığında (mousedown) girdi (#family) yazı tipi ailesi değerini alır. FireFox'ta çalışır, ancak Chrome'da yalnızca tek bir sözcükten oluşan font aileleri için çalışır. Gürcistan işe yarayacak ama Times New Roman olmayacak.

http://jsfiddle.net/aLaGa/

veya bu sorununun ne http://www.typefolly.com

canlı:

Burada kodunu görebilirsiniz? Thanx

+0

+1 HTML5 ve CSS3 ile yaptığınız bazı ilginç şeyler. – Anurag

+0

Thanx Anurag. Fark ettin ki. – Mircea

cevap

2
yazı tipi adı böyle boşluklar, içeriyorsa, WebKit ekler tırnak yerine hafifçe Senaryonu değiştirebilirsiniz

:

$('#selectable1 span').live('mousedown', function() { 
    var ff = $(this).css("font-family").replace(/\'/g,""); 
    $("#family").val(ff); 
}); ​ 

You can see a working demo here :)

And here's a RegEx approach pulling the literal value out of style that's probably easier than anything, ama RegEx değilim guru, birisi bunu geliştirmekte özgürdür ve cevabı günceller (RegEx'de emerim, özür dilerim!) Bu, sahip olduğunuz tüm örnekler için çalışır.

+0

@Nick: Bu 'Times New Roman' için çalışacak olsa da, düzeltmek kadarıyla gitmek gerekir Seçim kutusunun değerlerini de değiştirmek ve CSS değerlerinin tam tarayıcı uyumluluğu için belirlenme şeklini düzeltmek. Bunu çalışma demosunda bile görebilirsiniz :-) –

+0

Thanx Nick, Adage'ye tıkladığınızda doz çalışmaz ... – Mircea

+0

@Andy - Biraz netleştirin mi? sürümü tırnak kullanmadan uygulayabilirsiniz, işe yarayacak, demoya ekleyeyim. –

-1

Yazı tipi ailesi, kullanımda olan yazı tipini değil, virgülle ayrılmış değerlerin bir listesini verir. Ayrıca tırnak içinde değer verebilir. senin örnek sayfasında, çizgi alert(ff) ekleyerek verir:

'Times New Roman'

Georgia

adage-script-1, adage-script-2

7

Krom yazı aileleri tek tırnak ile birden fazla kelime olan sarar. Dolayısıyla, Chrome'da döndürülen font ailesi için değer:seçen Times New Roman listesindeki değerle uyuşmuyor. Tüm bu tarayıcı varyasyonları dikkate alındığında

, ben en iyi çözüm, virgül ile aile isimleri birbirinden ayırmak her yazı adını tek tırnak (varsa) Döşeme ve daha sonra kendilerine katılmaya olduğunu düşünüyorum. Seçim listesindeki bu dezenfekte edilmiş değeri kullanın. Bir example. Seçim listesi değerleri için bu tutarlı bir adlandırma düzeni takip etmek değiştirilmesi gerekiyordu:

fontName[, fontName]

Bu yoğun alıntılanan veya tırnaksız bir yazı-name herhangi virgül içeremez gerçeğine dayanır.

+0

hmmm, bu yüzden sadece etiketlerini düzenleme ve bir yazım hatası tespit sonra bu post geliyordum, komadan – Mircea

+0

1 döndürülen değerine şerit var. "Atasözü" tıklayarak yüzden bu yüzden, Chrome ayrıca virgülle ayrılmış yazı ailelerde virgülden sonra bir boşluk ekler dikkati çekiyor ya çalışmaz. –

+0

Bu başka bir iyi nokta @Andy, bunu özledim. – Anurag