2010-05-09 19 views
5

Jquery'yi kullanarak bir düğme oluşturmaya çalışıyorum. BenIE 7, jquery ('<button/>') .attr ('type', 'button')

jquery('<button/>', {type:'button'}).text(name) 

Ancak bu i attr işlevini kullanmaya çalıştı Safari, FF IE8 ancak IE7

çalışır aşağıdaki kodu kullanın:

jquery('<button/>').attr('type','button').text(name) 

bu da çalışmıyor.

herhangi bir fikir ne işe yarar? Bir tür atama yoksa bunu düğmeye varsayılan herhalde ama ben daha ziyade yardımın

+0

Bir '

+4

Aslında [düğmesi] (http://www.w3.org/TR/html401/interact/forms.html#h-17.5) varsayılan olarak type = submit. – Tgr

+2

düğmesinin type niteliği var, type = button, type = submit ve type = reset – salmane

cevap

5

bu deneyin. Ancak, yukarıdakiler çalışmalıdır. Geçen gün buna rastladım. IE, elemanlar yaratılırken elemanın sözdiziminde bir tür sağlamanıza izin verir ve jQuery argümanını doğrudan buradaki düşük seviyeli DOM API'sine geçirir.

Ayrıca, FF ve Chrome'da da iyi çalışıyor. iyi


düzenlemek — ne fark yılda ha yapar? JQuery 1.4.4 veya jQuery 1.5.x ile şu anda benim için bu mekanizmayı çalıştıramam. İyi haber, jQuery 1.6'nın OP'nin istediği şekilde çalıştığı görünmektedir: "type" ı daha normal jQuery benzeri bir şekilde ayarlayarak.

'un ne işe yaradığını görüyor, ancak, doğrudan öğeye ".setAttribute()" diyoruz. Böylece:

var b = $('<button/>'); 
b[0].setAttribute('type', 'button'); 

değil bir istisna yapar ve bu "tip" düzgün özniteliği yapar ayarlayın. (Bu, Microsoft'un açıkça "salt okunur" türünü "belgelediği" gibi, biraz tuhaftır.) 1.6'daki değişim aynı hatlar boyunca görünüyor. Eskiden kütüphane "tipini" kontrol etti ve DOM'de zaten var olan öğelere ayarlanmasına açıkça izin vermezdi, ancak bunu DOM'de olmayan bir öğe için basit bir özellik olarak ayarlamaya ve devam ettirmeye devam ederdi. Şimdi, 1.6 kodu, "türünü" ayarlamak için ".setAttribute()" çağırır; Bu bir gönderme düğmesi gibi davranan bir şey bulur

: ('to')

+0

Sonunda bir şey olmalı, çünkü bunu denedim ve hala çalışmıyor. Görünüşe göre IE7, IE8, FF ve Safari de varsayılan olarak "=" butonu var ... belki de sadece silinmemiş olarak bırakacağım – salmane

+0

Hayır, kesinlikle doğru değil: Tüm "iyi" tarayıcılar W3C teknik özelliklerini takip ediyor Bu, varsayılan türün "gönderildi" olduğunu şart koşar. (Peki bu "standart modda", eğer quirks modundaysanız, iyi (A) Ne yaptığını bilmiyorum ve (B) quirks modundan çık.) – Pointy

+0

Ayrıca, kesinlikle IE'de çalışıyor. Tam olarak, "hala çalışmıyor" dediğinizde ne demek istiyorsunuz? Javascript hatası alıyor musunuz? – Pointy

1

için

teşekkürler denediniz bunu:

var $btn = $("<button>Button Text</button>"); 

Sonra bu her yerde ekleyebilirsiniz Belgen Genellikle, bu şekilde bir dize değişmezi kullanarak hemen hemen herhangi bir DOM öğesi oluşturabilirsiniz. İşin ilginç yanı, düğmeler için varsayılan türü "düğmesi" (7 en azından emin hakkında standartlara mod 8) IE zaten olduğunu, şimdi

var button = $('<button type="button"/>'); 

:

+0

bu hiç şüphesiz ki benim sorunum düğmenin "tipi" ile ilgili. IE 7'nin bunu reddettiğini anlayınca – salmane

+0

Bunu kesinlikle yapabilirsiniz: var $ btn = $ (""); – BradBrening

+0

Bunu denedim ama işe yaramadı. Bazı nasıl, IE7 tür özniteliği tanımaz gibi değil .... gibi bir jquery 1.4 hata olabilir? – salmane

İlgili konular