Autor Zpráva
Honza_n
Profil *
Ahoj,
poradí mi někdo, proč ve funkci nastav_vzory() nemohu zpřístupnit proměné rod, skupina a cislo? Jak to vyřešit? Použil jsem JQuery.

function nastav_vzory() {
  var vzory=$("select[name=vzory]");
  var zkratka= rod.val()+skupina.val()+cislo.val();
  alert(zkratka);
}

$(document).ready(function() {
  var rod=$("select[name=rod]");
  var cislo=$("select[name=cislo]");
  var skupina=$("select[name=skupina]");

  rod.change(function () {
      $(rod,"option:selected").each(function () {
      nastav_vzory();
      });
  })

  cislo.change(function () {
      $(cislo,"option:selected").each(function () {
      nastav_vzory();
      });
  })

  skupina.change(function () {
      $(skupina,"option:selected").each(function () {
      nastav_vzory();
      });
  })

});
Nox
Profil
rtfm http://api.jquery.com/jQuery
Chamurappi
Profil
Reaguji na Noxe:
Kde se tam píše o omezení platnosti proměnné?
Otázka nesouvisí s použitým frameworkem.


Reaguji na Honzu_n:
Buď dej funkci nastav_vzory dovnitř té anonymní funkce, nebo udělej z proměnných rod, cislo a skupina globální (tedy nadeklaruj je varem umístěným mimo funkci).
_es
Profil
Honza_n:
poradí mi někdo, proč ve funkci nastav_vzory() nemohu zpřístupnit proměné rod, skupina a cislo? Jak to vyřešit? Použil jsem JQuery.
Pretože sú to lokálne premenné nepomenovanej funkcie definovanej od siedmeho riadku a tie sú neprístupné mimo tej funkcie.

Jak to vyřešit?
Jednou z možností je použitie globálnych premenných:
Na začiatok kódu dáš:
var rod, cislo, skupina;
a z 8., 9. a 10. riadku odstrániš kľúčové slovo var.

Použil jsem JQuery.
JQuery sa tento dotaz netýka, celé jQuery je v JavaScripte syntakticky implementované ako definícia jednej globálnej funkcie s názvom $.
Nox
Profil
Chamurappi:
Pravda, ale i tak se mi nějak nezdají u $() uvnitř funkcí ... jako 2. atribut je buď context, ownerDocument nebo prop(ertie)s, z čehož mě nic na option:selected nesedí atd.
Chamurappi
Profil
Reaguji na Noxe:
Pravda. Ale zřejmě mu tenhle nesmysl žádné potíže nepůsobí, protože jQuery druhý argument ignoruje, když ten první není řetězec.
Honza_n
Profil *
Jsem to nadeklaroval a funguje to.

Nox
Chcete říct, že mám bych objekt měl předat přes argument funkce?
Honza_n
Profil *
Mohl bych se zeptat ještě na jednu věc?

mám tento objekt:

vzory.poj.zz1

a chtěl bych ho zpřístupnit pomocí zkratky, protože s ním pracuji dynamicky. "zkratka" je nazev proměnné, která obsahuje název vlastnosti objektu vzory.poj. Tzn. že místo zz1 potřebuju dosadit tu zkratku. vzory.poj.zkratka jako vlastnost ale neexistuje.
_es
Profil
Honza_n:
Ani po mnohonásobnom prečítaní mi nie je dosť jasné, na čo sa pýtaš.
Možno to súvisí s problémom popísaným tu.
Honza_n
Profil *
Tak to je ono
vzory.poj[zkratka]

Dík
ah01
Profil
Honza_n:
Vrátím se k tomu co psal Nox, jsi si jistý, že:
$(rod,"option:selected")
dělá to co chceš? Pokud chceš změnit kontext selektrou, tak to se dělá trochu jinak.
Honza_n
Profil *
Já ti stejně moc nerozumím. Mě to funguje. Já nevím co si mám představit pod pojmem kontext selectoru. Kontext chápu jako v čem je ten element zařazený. Jako že je zařazený ve fieldset.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0