Autor | Zpráva | ||
---|---|---|---|
pilniczek Profil |
#1 · Zasláno: 28. 11. 2013, 10:47:52
Zdravím!
Knihovna: jquery-1.10.2.min.js. Jde o část on click funkce, ve které nefunguje if. Po zavolání funkce a před vyhodnocením ifu tedy zjišťuju, co je v jednotlivých proměnných. Konzole: > $(this) [<a href="pekne" class="active">pěkné</a>] > $("nav").last().find(".active") [<a href="pekne" class="active">pěkné</a>] > $(this) === $("nav").last().find(".active") false Proč je to porovnání false? > $(this).hasClass("active") true S tímto je if vyhodnocen správně a vše je OK. Zajímá mě, proč je to porovnání false... Nebo kam se mám podívat, abych zjistil, čim to... Díky moc! |
||
maks Profil |
#2 · Zasláno: 28. 11. 2013, 10:56:15
pilniczek:
oba objekty mají sice stejnou třídu, ale pořád to jsou dva různé objekty. Čeho se snažíš dosáhnout? Jestli zjištění, zda mají stejnou třídu, porovnávej třídy. Jestli něčeho jiného, porovnávej něco jiného. |
||
Joker Profil |
#3 · Zasláno: 28. 11. 2013, 12:13:05
pilniczek:
„Proč je to porovnání false?“ Protože to není stejný objekt. Jsou to dva různé jQuery objekty, které se shodou okolností týkají stejného HTML prvku. Příklad: > $(this).selector "" > $("nav").last().find(".active").selector ".active" Nicméně jeden jejich atribut je stejný, a sice ten prvek v DOMu. Takže tohle by mělo fungovat: $(this)[0] == $("nav").last().find(".active")[0] |
||
Časová prodleva: 10 let
|
0