Autor | Zpráva | ||
---|---|---|---|
sh00ter Profil |
#1 · Zasláno: 23. 7. 2009, 18:13:17
zdravim,
chci se zeptat, mam skript, kde na <td> mam onclick, kterej vola funkci ktera pak opravuje obsah, zjednoduseny skript HTML: <td id='td' onclick='funkce(this.id)'>aaa</td> JS: function funkce(id, way) { if(way=="in") { document.getElementById(id).innerHTML = ......; document.getElementById(id).onclick = ""; } else if(way == "out") { document.getElementById(id).innertHTML = ......; document.getElementById(id).onclick = "funkce("+id+", \"in\")"; //tohle nefunguje } } vsechno to funguje az na ten druhej onclick nevite jak to zprovoznit? diky |
||
Chamurappi Profil |
#2 · Zasláno: 23. 7. 2009, 18:25:10
Reaguji na sh00tera:
Kdykoliv skriptem přiřazuješ text, u kterého chceš, aby se vykonával jako skript, je něco špatně. Můžeš přeci normálně přiřadit funkci, ne? něco.onclick = function() { funkce(id, "in") }; Celé to jde napsat jednodušeji. Máš objekt buňky tabulky, při kliknutí na něj z něj zjistíš ID, to předáš funkci, ta podle ID zase najde zpátky ten objekt tabulky (který jsi měl v this) — není to trochu divné? <td onclick="funkce(this)">aaa</td> <script> function funkce(bunka) { bunka.innerHTML = "..."; } </script> |
||
sh00ter Profil |
#3 · Zasláno: 23. 7. 2009, 18:39:51
jo ok dik, akorat nechapu to s tim way....?
|
||
Chamurappi Profil |
#4 · Zasláno: 23. 7. 2009, 18:53:02
Reaguji na sh00tera:
function funkce(bunka) { if(bunka.way) bunka.innerHTML = "..."; else bunka.innerHTML = "..."; bunka.way = !bunka.way; } |
||
sh00ter Profil |
#5 · Zasláno: 23. 7. 2009, 18:56:32
ok dik moc ;)
|
||
sh00ter Profil |
#6 · Zasláno: 23. 7. 2009, 19:11:56
no ale vyskyt se mi jinej problem,
kdyz mam pak bunka.onclick = function () { alert("aa"); } tak se mi to rovnou provede a nastavi i tu vlastnost nez aby to jen ty bunce nastavilo tu vlastnost... |
||
Chamurappi Profil |
#7 · Zasláno: 23. 7. 2009, 19:17:49
Reaguji na sh00tera:
Prosím o odkaz na živou ukázku. Vůbec nerozumím, proč chceš z onclicku měnit onclick. |
||
sh00ter Profil |
#8 · Zasláno: 23. 7. 2009, 19:39:01
ziva ukazka http://sh00ter.xf.cz/test.html
|
||
Chamurappi Profil |
#9 · Zasláno: 23. 7. 2009, 19:45:33
Reaguji na sh00tera:
Proč měníš ten onclick? |
||
sh00ter Profil |
#10 · Zasláno: 23. 7. 2009, 19:50:14
tedka si tam zkus klepnout do toho inputu, proto...
|
||
Chamurappi Profil |
#11 · Zasláno: 23. 7. 2009, 19:53:12
Reaguji na sh00tera:
Připadám si, jak když mluvím do dubu. Nenastavuj nový onclick, viz příspěvek [#4]. |
||
sh00ter Profil |
#12 · Zasláno: 23. 7. 2009, 19:54:23
bez nastaveni onclicku to tam mam tedka
|
||
Chamurappi Profil |
#13 · Zasláno: 23. 7. 2009, 19:59:46
Reaguji na sh00tera:
Hm. A je snad v něčem problém? Čeho chceš docílit? |
||
sh00ter Profil |
#14 · Zasláno: 23. 7. 2009, 20:04:27
problem je v tom ze kdyz tedka klepnu na ten text zmeni se na input s tim textem, to je spravne, ale kdyz klepnu do toho inputu, vlozi mi to tam zas "<input type ....>" proste to co ta funkce ma vkladat,
vysledek ma vypadat tak ze kdyz klepnu na text v bunce, ta se zmeni v input plus potvrzujici input a kdyz to potvrdim tak se to zas zmeni jen na text, a tak furt dokola, tedka bez tech zmen toho onclicku to funguje je to ze se to zmeni na input, pak si to dela co chce, a s tema zmenama to funguje jen jednou, takze klepnu zmeni se na input, upravim, potvrdim zmeni se na text ale znova uz to nefunguje... |
||
Chamurappi Profil |
#15 · Zasláno: 23. 7. 2009, 20:09:14
Reaguji na sh00tera:
„ale kdyz klepnu do toho inputu, vlozi mi to tam zas“ Už jsem ti napsal, jak si zapamatovat, že se změnil stav. Viz [#4]. „vysledek ma vypadat tak ze kdyz klepnu na text v bunce, ta se zmeni v input plus potvrzujici input“ To je jeden úkon. „kdyz to potvrdim tak se to zas zmeni jen na text“ To je druhý úkon. Proč se je snažíš oba dva úkony nacpat do jedné funkce? |
||
sh00ter Profil |
#16 · Zasláno: 23. 7. 2009, 20:13:34 · Upravil/a: sh00ter
ale tak kdyz to rozdelim tak mi to pomuze max trosku v prehlednosti,
ja ten onclick na ty bunce potrebuju zrusit kdyz tam mam ten input, a pak kdyz uz ho tam nemam ho potrebuju zase nahodit, zruseni funguje, ale nahozeni ne... way sem teda udelal podle tebe.. |
||
sh00ter Profil |
#17 · Zasláno: 23. 7. 2009, 20:23:17 · Upravil/a: sh00ter
jezis promin, ja tam mel aspon v tomhle priklade spatnej nazev funkce....O:-)
ale funguje mi to jen pod IE :( v chromu se jen zobrazi input :( |
||
sh00ter Profil |
#18 · Zasláno: 23. 7. 2009, 22:24:00
tak jsem přišel na to že do tý druhý změny onclicku to funguje....ta druha zmena to nak ve vsech prohlizecich pojebe...
|
||
Chamurappi Profil |
#19 · Zasláno: 23. 7. 2009, 22:31:06
Reaguji na sh00tera:
„kdyz to rozdelim tak mi to pomuze max trosku v prehlednosti“ Hnát dva různé onclicky přes jednu funkci, která navíc ten onclick přepíše, je jednak praštěné a jednak ti to zjevně vůbec nejde. „ja ten onclick na ty bunce potrebuju zrusit kdyz tam mam ten input“ Nepotřebuješ. Už jsem ti napsal, jak si zapamatovat, že se změnil stav. Viz [#4]. Také jsem ti napsal, že je hloupost posílat do funkce ID aktuálního objektu jen proto, abys podle toho ID našel aktuální objekt. Jelikož si tam při kliknutí vyrábíš duplicitní ID, může se ti tahle hloupost docela snadno vymstít. |
||
sh00ter Profil |
#20 · Zasláno: 23. 7. 2009, 22:57:22
dobre mam rozdeleno na dve funkce, ale proste ten prvni onclick tam bejt musi, jinak tu funkci ktera udela input budu volat furt dokola; delam to s objectem misto id ale stejne to nefunguje...
|
||
Chamurappi Profil |
#21 · Zasláno: 23. 7. 2009, 23:00:02
Reaguji na sh00tera:
„jinak tu funkci ktera udela input budu volat furt dokola“ Ano, budeš. Už jsem ti napsal, jak si zapamatovat, že se změnil stav. Viz [#4]. |
||
sh00ter Profil |
#22 · Zasláno: 23. 7. 2009, 23:14:37 · Upravil/a: sh00ter
dobre mam to udelany pres tu vymyslenou vlastnost, ale funkcnost je furt stejna...
ja kdyz predavam ten objekt ty druhy funkci ktera to vraci zpatky na text tak mi to vrati undefined... |
||
Chamurappi Profil |
#23 · Zasláno: 24. 7. 2009, 00:13:17
Reaguji na sh00tera:
„predavam ten objekt ty druhy funkci ktera to vraci zpatky“ Ten objekt nepředáváš. Generuješ tam doslova „onclick="rminput([object])"“. Jak jsem již říkal, kdykoliv skriptem přiřazuješ text, u kterého chceš, aby se vykonával jako skript, je něco špatně. Platí to i pro tento onclick. Nejjednodušší by asi bylo vyrobit ten <input> přes document.createElement (podrobnosti si najdi sám), pak můžeš onclick přiřadit opět jako funkci. A nebo si tedy vrať zpátky ta ídéčka, pokud je objektové programování nad tvé chápání. |
||
Časová prodleva: 15 let
|
0