Autor | Zpráva | ||
---|---|---|---|
okolojdouci Profil * |
#1 · Zasláno: 20. 11. 2011, 17:07:58
Dělal jsem to už x-krát a teď mi to prostě nefunguje, nechápu proč.
Obsah JS: var xmlhttp; function delkruh(k) { if (confirm("Opravdu smazat?")) { xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="ajax.php"; url=url+"?delx="+k; url=url+"&sid="+Math.random(); xmlhttp.onreadystatechange=deldone; xmlhttp.open("GET",url,true); xmlhttp.send(null); } } function deldone() { if (xmlhttp.readyState==4) { alert ("--"); var kid = xmlhttp.responseText; alert (kid+"--"); } } To php proběhne, na jeho konci mám echo, které taky funguje, když to zkouším otevřít přímo. Ale do toho responseText se to nenačte. Proč, u všech škvarků? alert ("--") proběhne, ale ten kid je prázdný. |
||
okolojdouci Profil * |
#2 · Zasláno: 20. 11. 2011, 21:53:53
Tak to byla chuťovka.
Mám <tr> a ten má onclick, který má nějaké opodstatnění. V něm jsou samozřejmě buňky, v jedné z nich je obrázek s dalším onclick, který přes confirm má ten řádek smazat. Vtip byl v tom, že se ty onclicky nějakým záhadným způsobem hádaly, v důsledku čehož mi xmlhttp nevrátil ten responseText, který do něj php dalo. Po zkušebním odstranění toho onclicku z <tr> ten druhý onclick jede bez problému. Otázka zní: lze zařídit, když kliknu na obrázek v <tr><td>, aby se provedl jen onclick přiřazený obrázku a ne onclick zadaný pro ten <tr>? |
||
Kcko Profil |
#3 · Zasláno: 20. 11. 2011, 21:59:38
Probublávání?
|
||
okolojdouci Profil * |
#4 · Zasláno: 20. 11. 2011, 22:04:10
Kcko:
Ten pojem jsem naposled potkal v souvislosti s třídícími algoritmy. Mohl bys mě nakopnout nějakým směrem? |
||
Kcko Profil |
#5 · Zasláno: 20. 11. 2011, 22:08:18
Můžeš dodat nejdřív nějakou ukázku, ať tu neplácám kraviny?
|
||
okolojdouci Profil * |
#6 · Zasláno: 20. 11. 2011, 22:16:33
Kcko:
To by nebylo úplně jednoduchý a radši bych se bez toho obešel. Vypadá to prostě takhle: <tr id='r111' onclick="kruhdet('111', '1', '1')"><td>ahoj <span class='flvpravo'> <img src='images/delete.gif' onclick="delkruh('111')"> </span></td> </tr> Ten gif opravdu zabírá jen svých 12x12 px, span ho natěsno obklopuje. |
||
Kcko Profil |
#7 · Zasláno: 20. 11. 2011, 22:31:20 · Upravil/a: Kcko
Pro starší verze IE to fungovat nebude, budeš muset použít nějaké rozlišení a window.event (viz Google).
Kdybys použil jQuery tak bych Ti funkční a kompatibilní kód vysekl ihned ( http://jquery.jslab.net/zkousecka/#fa73078785b2e735e2a5d3d5b966e3c7 ) Ještě určitě přispěchají "vládci" JS sekce, tak uvidíš co Ti poradí. <table border="1"> <tr id='r111' onclick="kruhdet('111', '1', '1')"><td>ahoj <span class='flvpravo'> <span onclick="delkruh('111', event); return false">SPAN</span> </span></td> </tr> </table> function kruhdet() { alert("trko"); } function delkruh(someContent, e){ alert(someContent); e.stopPropagation(); e.preventDefault(); } |
||
Chamurappi Profil |
#8 · Zasláno: 20. 11. 2011, 23:04:50
Reaguji na okolojdouciho:
Předej si event v argumentu a zavolej event.cancelBubble = true .
|
||
okolojdouci Profil * |
#9 · Zasláno: 20. 11. 2011, 23:26:55
Pánové, díky moc oběma. Šlape to jak má.
|
||
Časová prodleva: 12 let
|
0