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

  • George McCarron

    George McCar

    29 Mayıs 2013
  • National Geographic

    National Geo

    7 Mayıs 2006
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011