Keresés

Új hozzászólás Aktív témák

  • Jim-Y

    veterán

    válasz Zedz #3932 üzenetére

    Több gond is van vele, egyrészt $(this) és nem $('this'), mert utóbbi esetben a DOM this tageket szűrnéd ki vele.
    Másrészt amit meg akarsz csinálni azt nem így kell, mert a a $(this) ebben a kontextusban az oldalon található input mezőket adja vissza.
    A $(this).length == 0 akkor igaz, ha az oldalon nincs <input>.

    Helyesen: [link]

    Magyarázat:
    - a this mindig a hívó objektumra utal. Ebben az esetben amire a focusout-ot meghívtuk. Mire hívtuk? $('input')-ra ami egy olyan objektum ami az oldal összes input mezejét tartalmazza.
    - a $(this) a this objektumból csinál egy jquery objektumot, így a $(this)-re meghívhatjuk a jquery-s függvényeket. Mint a példában: $(this).after("<p>Empty this</p>");
    Az after egy jquery metódus, jquery objektumokon van értelmezve. this.after() hibás!
    - a this.value helyett írhattunk volna $(this).val() -t is, ugyanazt az eredményt kapjuk. Ellenben, míg a value az input element beépített property-je, addig a val() egy jquery-s függvény, valószínűleg a val()-is a value-t kérdezi le. Annyi különbség mégis van, hogy a val() egy jquery objektummal tér vissza, tehát működik rajta a method chaining.

Új hozzászólás Aktív témák

Hirdetés