| | |
| Stránka: 1 z 1
| [ Príspevkov: 22 ] | |
Autor | Správa |
---|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 |
chcem si spravit fciu erase() napriklad ..ktora by zacinala takto
Kód: $("a.erase").click(function(){ .... });
namiesto "..." potrebujem doplnit kod ktory mi najde najblizsi input PRED tymto elementom na ktory bude kliknute...a to neviem ako ... aby som inputu mohol nastavit value = ""... viete mi pomoct?
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 09.03.2011 17:05 | |
|
DOM je v podstate strom, takže najbližší pred môže znamenať všeličo (záleží to od toho, aký html kód tam používaš).
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 09.03.2011 18:11 | |
|
Toto by nefungovalo??
$("a.erase").click(function(){ $("a.erase").prev("input").value="bla" });
|
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | Napísal autor témy DeeJay3: 09.03.2011 22:15 | |
|
skor takto ale ani to NEJDE ...to co si napisal by nefungovalo ak by si mal na jednej stranke viac a.erase lebo by nevedelo ktory input ma brat...
Kód: function erase(){ $("a.erase").click(function(e){ var $target = $(e.target).prev("input"); $target.value = ""; }); }
|
|
Registrovaný: 09.05.05 Prihlásený: 07.12.16 Príspevky: 1294 Témy: 69 Bydlisko: - - - |
pouzivaj `this` ked chces vediet na ktoru linku si prave klikol.
Kód: $('a.erase').click(function(){ var input = $(this).prev('input'); input.val(''); });
nezabudaj ze input musi byt sibling..
|
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | Napísal autor témy DeeJay3: 10.03.2011 13:10 | |
|
rad by som povedal ze to funguje...ale nefunguje :/ preco?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 10.03.2011 15:07 | |
|
Lebo to mas pokazene. Posli odkaz na zivu ukazku alebo ukaz svoj kod cez jsfiddle.net.
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 10.03.2011 15:52 | |
|
Ja by som sa pridal ak dovolíte, lebo som sa do toho zaplietol a keďže je to to isté, tak nechcem zakladať novú tému.
Tu je kód: http://jsfiddle.net/p5XEp/3/
Ten kód funguje ako má, ale keď do funkcie prev pridám argument napr. prev("div"), tak to fungovať prestane.
Nechápem prečo?
|
|
Registrovaný: 27.11.10 Prihlásený: 20.08.13 Príspevky: 112 Témy: 18 | Napísal Ando: 10.03.2011 16:07 | |
|
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 10.03.2011 16:17 | |
|
Ando:
To by mohlo byť riešenie pre DeeJaya, ale mňa by zaujímalo, prečo ten tvoj príklad prestane fungovať keď medzi ten klikač a ten input pridám niečo iné, ako napr. tu: http://jsfiddle.net/p5XEp/7/
Lebo podĺa dokumentácie by to fungovať malo. Načo iné je tam potom voliteľný argument???
EDIT:
Ako vidno vadí tam akýkoľvek iný element, ktorý by sa ocitol medzi klikačom a prev(). Ale fakt nechápem, načo je tam potom ten voliteľný argument.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | |
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | Napísal autor témy DeeJay3: 10.03.2011 17:00 | |
|
no ja tam tiez mam medzi tym nejaky iny element...preto mi to neslo...ako to inak napisat ???
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 10.03.2011 17:10 | |
|
No tak pre to čo som chcel, by to mohlo vyzerať takto: http://jsfiddle.net/p5XEp/9/
Len je tam zaujímavé, že prevAll() vracia objekt, ktorý má prvky zoradené od konca. Moc elegantné mi to celé teda nepripadá. Čakal som že funkcia prev() bude fungovať lepšie...
EDIT:
sorry už je ten link opravený...
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 11.03.2011 1:10 | |
|
DeeJay3 píše: no ja tam tiez mam medzi tym nejaky iny element...preto mi to neslo...ako to inak napisat ??? A ako teda vyzerá ten tvoj html kód?
|
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | Napísal autor témy DeeJay3: 11.03.2011 8:09 | |
|
teda nie element ale mam to v tabulke
Kód: <table class="inner auto" cellspacing="0"> <tbody> <tr> <td> <input type="text" name="platnost" id="platnost" value="" /> </td> <td> <a class="erase"/> </td> </tr> </tbody> </table>
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | |
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | Napísal autor témy DeeJay3: 12.03.2011 11:29 | |
|
jj ide to dikes.... // pridané po 19 hodinách 24 minútach od posledného príspevkuKód: $(this).parent().prev().children("input").attr("value", "");
a mohol by mi to niekto trocha objasnit??...funguje to ale nejak tomu nechapem aj ked som si precital dokumentaciu :/...
tejto postupnosti nerozumiem: parent().prev().children("input")
teraz napriklad potrebujem napisat fciu ktora mi vlozi vsetky udaje do elementu (select) ktory sa nachadza najblizsie ZA kliknutym elementom...cize nasledujuci element select
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 12.03.2011 11:45 | |
|
To je taký problém dať tým elementom nejaké id? Napr. <a> sa dá item_1, tomu editu zase item_1_text ...
Ak sa to tak nedá, lebo to máš zložitejšie, tak to máš urobené zle a urob to ešte raz a rozumne (spoliehať sa v javascripte na presný tvar html kódu nie je podľa mňa rozumné).
|
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | Napísal autor témy DeeJay3: 12.03.2011 11:54 | |
|
samozrejme ze sa to da...prave tak to teraz mam spravene...ale dosiel som k problemu ktory mi to robi nepouzitelnym...trochu ti ho popisem:
mal som dve selecty...prvy #druh_zariadenia v ktorom som si vybral druh zariadenia cez onchange $(this).val(). postom cez ajax poslal do suboru v ktorom som vytiahol vsetky zariadenia podla value aku som v tomto selecte vybral a options vlozit do druheho selectu #zariadenia..ALE ...vyskytol sa problem ze potrebujem na stranke prepojit jedno zariadenie z inym TAKZE: potrebujem vybrat druh zariadenia a zariadenie pre PRVE a vybrat druh zariadenia a zariadenie pre DRUHE zariadenie...to znamena ze uz tam ID na tie elementy pouzit nemozem lebo by tam boli dvakrat...tieto dve selecty su VZDY za sebou preto tam ziadny problem nastat nemoze a mozem to spravit takto..len potrebujem pomoct
Kód: <table> <tr> <td align="left"> <select name="druh_zariadenia" id="druh_zariadenia" > <option value=""></option> <option value="3" >druh 3</option> <option value="4" >druh 4</option> <option value="5" >druh 5</option> </select> </td>
<td align="left"> <select name="zariadenie" id="zariadenie" > <option value=""></option> </select> </td> </tr> </table> js: Kód: $("#druh_zariadenia").change(function() { $.ajax({ url: 'site.php/get_zariadenia/'+$(this).val(), dataType : 'json', success : function(data){ $("#zariadenie").html(data.content); }, error : function() { alert('chyba'); } }); });
ak tie selecty dam dvakrat za sebou on nevie do ktoreho ma vlozit tie udaje preto potrebujem tento riadok $("#zariadenie").html(data.content); nahradit takym ze to vlozi do najblizsieho selectu
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 12.03.2011 12:35 | |
|
Ty tam máš teda dve zariadenia? Ak áno, to je problém použiť ID zariadenie1 a zariadenie2? Prípadne môžeš použiť class.
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 12.03.2011 12:41 | |
|
deeJay:
Tu nájdeš všetko, čo som použil v tvojom prípade: http://jquery-navod.cz/kategorie-selektory/4-selektory
Ak nechápeš, čo znamenajú slová parent, children, sibling a prev tak si treba pozrieť niečo o štruktúre DOM.
chrono:
Ale ako rozlíšiš v tom riadku - $("#zariadenie").html(data.content); - do ktorého sa to má vložiť?? Musel by si založiť nejakú premennú s identifikátorom, ktorá by to rozhodla, čo by bola ďalšia funkcia navyšše, nie??
Edit:
ale tá funkcia by zrejme bola aj tak efektívnejšia...
|
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | Napísal autor témy DeeJay3: 12.03.2011 18:40 | |
|
pozri sem spravil som nejaky podobny priklad bez toho aby som to musel posielat do suboru
http://jsfiddle.net/sjVfC/2/
len tam potrebujem nahradit riadok $("#zariadenie").html(content); za taky aby tie options vlozilo do nasledujuceho selectu za tym v ktorom vyberas druh..ta fcia sa v stahuje stale na dve selecty v jednom vyberiem druh a do druheho sa mi vypisu zariadenia tohto druhu...a nemozem to viazat na ID lebo takych dvojich tam mozem mat aj 4
// pridané po 1 hodine 31 minútach od posledného príspevku
camo píše: deeJay:Tu nájdeš všetko, čo som použil v tvojom prípade: http://jquery-navod.cz/kategorie-selektory/4-selektory
cele som si to presiel..ale neviem ci to nejake spojenie fcii next, children mi pomoze kedze tie moje dva selecty mozu byt oddelene buď:
Kód: <tr> <td> select 1 </td> <td> select 2 </td> </tr>
ale mozu byt oddelene aj: Kód: <tr> <td> select 1 </td> </tr> <tr> <td> select 2 </td> </tr>
pri oboch pripadoch by ten js kod mal vyzerat inak nie?...potrebujem nieco co prejde DOM od aktualneho selectu az kym nenajde najblizsi dalsi select a do neho to vlozi...ziadne jednoduche riesenie neexistuje ? // pridané po 4 hodinách 21 minútach od posledného príspevkuedit: no nic spravil som to tak ze beriem druhu class s aktualneho selectu Kód: var target = $(this).attr('class').split(" ")[1]; kedze prva je .druh_zariadenia a terget select vyberam tak ze: Kód: $('select#'+target).html(data.content);
inak sa to asi ani neda
|
|
| Stránka: 1 z 1
| [ Príspevkov: 22 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Nefunguje script pre input formulara v JavaScript, VBScript, Ajax | 13 | 849 | 23.08.2010 15:38 newboy1 | | funkcia pre input v skrytom dive v JavaScript, VBScript, Ajax | 2 | 380 | 04.12.2010 12:15 DeeJay3 | | Najblizsi datum v Databázy | 7 | 692 | 21.03.2011 20:21 stenley | | Menu - problem s pseudo-elementom v HTML, XHTML, XML, CSS | 2 | 258 | 14.02.2012 19:56 tomco3131 | | Nemôžem nájsť driver pre monitor v Ovládače | 1 | 703 | 30.01.2010 15:46 Milan.H | | nemozem najst bios pre moju dosku v Biosy a ladenie výkonu | 1 | 1281 | 27.04.2006 16:40 XPM | | neviem najst firmware pre moju mechaniku mam ntb acer AS5920 v Ovládače | 9 | 694 | 16.11.2008 15:56 Googler1 | | input v HTML, XHTML, XML, CSS | 19 | 1401 | 08.03.2008 14:53 shaggy | | Input v JavaScript, VBScript, Ajax | 1 | 894 | 26.02.2008 7:49 sento | | heigth input v HTML, XHTML, XML, CSS | 5 | 507 | 31.01.2009 19:20 jablko05 | | input index v PHP, ASP | 6 | 551 | 05.07.2009 19:42 php30 | | input jQuery v JavaScript, VBScript, Ajax | 5 | 577 | 20.07.2010 21:07 walther | | input - checkbox v PHP, ASP | 1 | 392 | 17.09.2011 21:46 chrono | | Input file v HTML, XHTML, XML, CSS | 3 | 658 | 28.04.2008 16:37 stenley | | input - javascript v JavaScript, VBScript, Ajax | 20 | 947 | 15.11.2011 15:49 lukas15 | | input s filtrom v HTML, XHTML, XML, CSS | 4 | 516 | 19.12.2009 11:35 djsulo |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|