SORU
6 Kasım 2012, Salı


jQuery vs prop sorudur?

Şimdi bu sadece bir değilFark soru buydu, done some tests(http://jsfiddle.net/ZC3Lf/) çıkış ile <form action="/test/"></form>​ prop attr değiştirme var:

1) Modifikasyon test prop
Prop: http://fiddle.jshell.net/test/1
Ot: http://fiddle.jshell.net/test/1

2) Değişiklik test Sorudur
Prop: http://fiddle.jshell.net/test/1
Ot: /test/1

3) bir Sorudur sonra Değişiklik test Prop
Prop: http://fiddle.jshell.net/test/11
Ot: http://fiddle.jshell.net/test/11

4) sonra bir Sorudur Değişiklik test Prop
Prop: http://fiddle.jshell.net/test/11
Ot: http://fiddle.jshell.net/test/11

Şimdi bir kaç şey, benim bilgim gelince şaşırdım:
Pervane:JavaScript ile herhangi bir değişiklik sonra şu andaki durumda değeri
Güzel bir sorudurBu değeri sayfa yüklendiğinde html olarak tanımlanmıştır.

Şimdi Eğer bu doğruysa

  • Neden prop action tam yapmak gibi görünüyor, ve öznitelik değiştirme yok tersine değiştirme değil mi?
  • Neden 1) 17 *değiştirmek bana hiç mantıklı özniteliği değiştirmek mi?
  • Neden 2) 19 *değiştirme özelliği değiştirin, bu şekilde bağlantılı olması gerekiyordu?

< / ^ hr .

Test Kodu

HTML

JavaScript

var element = $('form');
var property = 'action';

/*You should not need to modify below this line */

var body = $('body');
var original = element.attr(property);

body.append('<h1>Prop Modification test</h1>');
element.prop(property, element.prop(property)   1);

body.append('Prop: ' element.prop(property) '<br />');
body.append('Attr: ' element.attr(property) '<hr />');

//reset
element.prop(property, original);
element.attr(property, original);

body.append('<h1>Attr Modification test</h1>');
element.attr(property, element.attr(property)   1);

body.append('Prop: ' element.prop(property) '<br />');
body.append('Attr: ' element.attr(property) '<hr />');

//reset
element.prop(property, original);
element.attr(property, original);

body.append('<h1>Attr then Prop Modification test</h1>');
element.attr(property, element.attr(property)   1);
element.prop(property, element.prop(property)   1);

body.append('Prop: ' element.prop(property) '<br />');
body.append('Attr: ' element.attr(property) '<hr />');

//reset
element.prop(property, original);
element.attr(property, original);

body.append('<h1>Prop then Attr Modification test</h1>');
element.prop(property, element.prop(property)   1);
element.attr(property, element.attr(property)   1);

body.append('Prop: ' element.prop(property) '<br />');
body.append('Attr: ' element.attr(property) '<hr />');

CEVAP
6 Kasım 2012, Salı


Ne yazık ki linkler hiç biri çalışmıyor :(

Bazı bilgiler olsa da, attr tüm özellikler için. prop özellikleri.

Eski bir WordPress kullanmak sürümlerinde (&; 1.6 lt), biz sadece attr vardı. Gibi bir şey yapmak zorunda nodeName, selectedIndex defaultValue gibi DOM özelliklerini almak için:

var elem = $("#foo")[0];
if ( elem ) {
  index = elem.selectedIndex;
}

prop eklendi çok kötüydü,:

index = $("#foo").prop("selectedIndex");

Bu harika oldu, ama rahatsız edici bu geriye dönük uyumlu değildi:

<input type="checkbox" checked>

checked, hiçbir özniteliği vardır ama bir özelliği checked adı var.

Yani, finalde 1.6, attr yapı işleri kırmadı ki prop bunu yapar. Bazı insanlar bunu telafi etmek istedim, ama doğru kararı şeyleri her yerde kırmadı olarak yapıldı.

İlgili:

Prop: JavaScript ile herhangi bir değişiklik sonra şu andaki durumda değeri

Ot: sayfa yükleme html olarak tanımlanan, değeri.

Bu her zaman doğru değildir birçok kez özniteliği aslında değişti, ama kontrol gibi özelliklerini değiştirmek için bir öznitelik yok, pervane kullanmak gerekir.

Referanslar:

http://blog.jquery.com/2011/05/03/jquery-16-released/

http://ejohn.org/blog/jquery-16-and-attr

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • lilstevie89

    lilstevie89

    25 Mart 2011