Autor | Zpráva | ||
---|---|---|---|
imploder Profil |
#1 · Zasláno: 25. 8. 2007, 19:26:40
<script language="JavaScript" type="text/javascript">
function addscrow(n) { var s = document.getElementById('sc_select'+n); s.onchange = ""; var nrow = document.getElementById('sc_row'+(n+1)); nrow.style.display = 'block'; var ns = document.getElementById('sc_select'+(n+1)); ns.onchange = 'addscrow('+(n+1)+')'; } </script> V Opeře funguje bez problémů, ale ve FF i IE se zřejmě neprovede poslední řádek. |
||
Manq Profil |
#2 · Zasláno: 25. 8. 2007, 19:31:14
imploder
Ve FF myslím existuje Konzola JS. Nástroje > Konzola JavaScriptu. Vypíše ti, co je špatně. |
||
imploder Profil |
#3 · Zasláno: 25. 8. 2007, 19:59:42
Nic mi nevypsala. Ani v IE to neukazuje žádnou chybu. Jen to prostě provede první dva řádky a ten třetí ne nebo nějak chybně.
Je to na stránce http://bprhad.wz.cz/awkwords/ Má to při změně v selectu na posledním řádku odkrýt další řádek a nastavit mu jakožto novému poslednímu zobrazenému řádku tutéž funkci pro přidání dalšího. Tak by to mělo jít až dokud nebudou všechny řádky odkryté. V Opeře to funguje. Ve FF i IE to sice přidá další řádek, ale jeho změna (vybrání písmena) už nic nepřidá. |
||
los Profil * |
#4 · Zasláno: 25. 8. 2007, 21:20:00
Nesprávne je to, že sa nastavuje obsluhe udalosti reťazec namiesto obslužnej funkcie. Z toho, že to funguje v Opere, si nič nerob - Opera bola vždy trochu iná. Namiesto ns.onchange = 'addscrow(' + (n + 1) + ')' by tam malo byť niečo ako ns.onchange = function() { addscrow(n + 1); }. Prípadne môžeš použiť addEventListener/attachEvent a removeEventListener/detachEvent.
|
||
peta Profil |
#5 · Zasláno: 25. 8. 2007, 22:17:01
ns.onchange = 'addscrow('+(n+1)+')';
ns.onchange = 'aaa'; alert(ns.onchange) vypise aaa Podle mne to funguje naprosto spravne, priradil jsi tam string. Vytvareni nove funkce je function nebo new Function. prirazeni funkce nejake se pise ns.onchange=funkce; ns.onchange = 'aaa'; Javascriptova konzola pochopitelne nic nenapise, protoze je zapis spravny, lze to tak napsat. function funkce(evt) {alert('aaa');} ns.onchange=funkce; alert(ns.onchange) napise function funkce(evt) {alert('aaa');} ns.onchange(); napise 'aaa' |
||
imploder Profil |
#6 · Zasláno: 26. 8. 2007, 11:21:03
Myslel jsem, že při nastavování atributů jde jen o to jaký kde bude řetězec - jako bych to psal přímo do kódu.
Vložil jsem tam funkci místo řetězce jak jste mi poradili a funguje to jak má. Díky za pomoc. |
||
Časová prodleva: 17 let
|
0