Autor Zpráva
lukasMK
Profil *
Zdravím, mám následující kód:

<a href="files/neco.jpg" id="menicise"  style="display:block;width:300px;background-position:center center;background-repeat:no-repeat;height:300px;background-image:url('files/300/neco.jpg')"></a>

<select>
<option onClick="document.getElementById('menicise').style.backgroundImage='url(files/300/neco2.jpg)';document.getElementById('menicise').href='files/neco2.jpg'">černá</option>

<option onClick="document.getElementById('menicise').style.backgroundImage='url(files/300/neco3.jpg)';document.getElementById('menicise').href='files/neco3.jpg'">zelená</option>
.
.
.
.
</select>


Ovšem daný kód nefunguje v IE (pouze v IE9). Dle projetých diskuzí by asi šlo použít onchange přímo u selectu ovšem to nevím jak v daném problému.
Poradí prosím někdo?
Darker
Profil
lukasMK:
by asi šlo použít onchange přímo u selectu
Tedy jsi to ještě neskusil? V tom případě hurá na to.
V opačném případě je tu ještě onFocus.
_es
Profil
lukasMK:
To máš koľko takých atribútov onclick?
Nevieš si na to spraviť jednu funkciu?

Dle projetých diskuzí by asi šlo použít onchange přímo u selectu
Áno, napríklad takto:
<select onchange="nastav(this.selectedIndex)">
A napíšeš si funkciu nastav, ktorá podľa vybratého optionu nastaví to, čo treba. A nielen, že to bude jednoduchšie, ale to bude aj správne fungovať vo všetkých prehliadačoch.
lukasMK
Profil *
Onfocus nefunguje. Ten onchange si nastuduju, vůbec nevím jak na to. Díky.
_es
Profil
lukasMK:
vůbec nevím jak na to
Veď som ti dal jasný návod.
Funkciu nastav, ktorá podľa čísla vybraného optionu v argumente spraví všetko potrebné, si snáď spravíš aj sám. V jednotlivých optionoch ti potom nebudú treba žiadne atribúty.
lukasMK
Profil *
Pokud jsem to pochopil dobře, u každého options bych měl ve value název toho obrázku a ten název pak bude v proměnné this.options[this.selectedIndex].value, co když ale mám value zabrané, mohu to tam vepsat jinak?
_es
Profil
lukasMK:
co když ale mám value zabrané
No tak využiješ poradové číslo optionu: this.selectedIndex.
Veď to aj meníš podľa toho: neco2, neco3, atď.
lukasMK
Profil *
To je ale pouze název obrázku, dostal jsem se sem:

<a href="files/neco.jpg" id="menicise"  style="display:block;width:300px;background-position:center center;background-repeat:no-repeat;height:300px;background-image:url('files/300/neco.jpg')"></a>

<select onchange="document.getElementById('menicise').style.backgroundImage = 'url(files/300/' + this.options[this.selectedIndex].value2 + ')' ">
<option value2="neco2.jpg">černá</option>

<option value2="neco3.jpg">zelená</option>
.
.
.
.
</select>


To ale nefunguje.
Darker
Profil
Netuším, proč tam máš value2 a ne value.
this.selectedIndex představuje číslo vybrané položky, pokud máš tedy obrázky, jenž se co do jména liší jen číslem, stačí měnit to číslo.
Pokud se pak obrázky jmenují různě, nejlepší bude vytvořit pole číslované analogicky s čísly možností.
Tedy vybereš druhou a onchange si z pole načte druhý obrázek.
_es
Profil
lukasMK:
Nečítaš pozorne rady, prečítaj si ich znovu poriadne.
Nazvi si súbory ako chceš, no tak, aby to malo z hľadiska celku význam.

this.options[this.selectedIndex].value2
Ako si prišiel k vlastnosti value2? Čo by mala predstavovať?
Prečo tam stále „cpeš“ this.options[this.selectedIndex], keď ti stačí poradové číslo vybraného optionu, teda výraz this.selectedIndex?
lukasMK
Profil *
Cpu to do value2 protože value mám již zabrané nečím jiným, to jsem psal.
Chamurappi
Profil
Reaguji na lukaseMK:
A na ostatní rady neodpovíš? Pole neznáš?
_es
Profil
lukasMK:
Cpu to do value2 protože value mám již zabrané nečím jiným, to jsem psal.
Až na to, že ti to tak nebude fungovať vo všetkých prehliadačoch.
To ti nestačí poradové číslo vybratej položky? Veď sa ten názov líši len tým číslom.
Ak aj nie, máš aj iné vhodné atribúty, napríklad id alebo name.
lukasMK
Profil *
Příklad byl pouze příklad, název obrázku je vždy jiný.
Pokud tedy název obrázku u options dám do id
<option  id="city-prilehave-tricko-s-kulatym-vystrihem[3].jpg" value="726">White</option>


Tak onchange má vypadat jak? Takto mi to nefunguje, bude tam asi nějaká blbost.

onchange="document.getElementById('menicise').style.backgroundImage='url(files/300/' + this.options[this.selectedIndex].id +  ')\''"

Prosím může mě někdo nasměrovat kde je tam chyba? Řešení chci použít tohle.
lukasMK
Profil *
Chybu jsem již našel, děkuji moc za pomoc.
Chamurappi
Profil
Reaguji na lukaseMK:
děkuji moc za pomoc
Není zač. Použil jsi ohavný postup, který ti tu nikdo neradil. Zneužívat id k tomuhle… no fuj.
Darker
Profil
Chamurappi:
který ti tu nikdo neradil
Bohužel
_es:
napríklad id


Cesta menšího odporu...
_es
Profil
Darker:
Bohužel
_es:
„napríklad id“
Cesta menšího odporu...
Navrhoval som mu využiť nejako name alebo id, keď už nedokázal vysvetliť, prečo mu nestačí poradové číslo optionu, nie dávať do id celý, zbytočne komplikovaný a dlhý, názov súboru.
Darker
Profil
_es:
Já tě neobviňoval. Celý příspěvek byl myšlen tak že tenhle člověk najisto šáhne po nejblbějším řešení. Cuum unique.
lukasMK
Profil *
Ještě jednou zdravím, mám ještě jeden dotaz.
Chtěl bych při kliknutí na odkaz, vybrat daný options v selectu podle toho prasáckého ID. S value mi to funguje, jenže to jak jsem psal je již zabrané jinou hodnotou.

onclick="document.getElementById('Barva').value='grey'"


Pokud místo value dosadím id samozřejmě to nefunguje, prosím o pomoc.
lukasMK
Profil *
Omlouvám se, vyřešil jsem (trochu jinak).

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:

Prosím používejte diakritiku a interpunkci.

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

0