Autor | Zpráva | ||
---|---|---|---|
vlkodlak Profil |
zdravím,
narazil jsem na následující pro mně nejasné fungování, jQuery po načtení stránky, vše správné funguje, ale pouze jednou. Kód reaguje na kliknuti na A link s třídou "new-line", ale po vykonání již podruhé stejný A-link je nedostupný / nefunkční až po reloadu stránky Jak, prosím, mohu reaktivovat provedeni kódu aniž bych musel dělat refresh? $("body").on("click", "a.new-line", function () { .... $.ajax({ type: 'post', url: '?do=edititem', data: { param: { .... }, }, success: function (response) { .... }, error: function (response) { ..... } }) }); |
||
Kajman Profil |
#2 · Zasláno: 5. 5. 2021, 09:29:16
Dodejte živou ukázku.
|
||
vlkodlak Profil |
#3 · Zasláno: 5. 5. 2021, 10:16:57
Kajman:
$("body").on("click", "a.new-line", function () { $("div#ajax-spinner").show(); var myid = $(this).attr('data-id'); $.ajax({ type: 'post', url: '?do=edititem', data: { param: { EmployeeNumber: $('#frm-absence-employee').val(), FirstDayDate: $('input.FirstDayDate').val(), LastDayDate: $('input.LastDayDate').val(), AbsenceType: $('#select-absence option:selected').text(), AbsenceRemark: $('input.AbsenceRemark').val() }, }, success: function (response) { $('form#frm-absence').on('submit'); }, error: function (response) { console.log(response); } }) $("div#ajax-spinner").hide(); }); |
||
Kajman Profil |
#4 · Zasláno: 5. 5. 2021, 10:19:39
Tohle ale není živá ukázka. Povídání o živých ukázkách
Něco jako Živá ukázka ale aby tam bylo vidět, že to nefunguje. |
||
vlkodlak Profil |
#5 · Zasláno: 5. 5. 2021, 10:58:04
|
||
Kajman Profil |
#6 · Zasláno: 5. 5. 2021, 11:04:57
Ale tam se POST pošle při každém kliknutí, ne jen poprvé.
|
||
vlkodlak Profil |
#7 · Zasláno: 5. 5. 2021, 11:19:18
Kajman:
ano v živé ukázce to funguje dlé očekávaní - pokaždé v realite na intranetu po kliknuti na A-link nic se nestane jako kdyby cely ten $("body").on("click", "a.new-line", function (){...} již nebyl a jediná možnost na konci zpracovaní ten kód znovu inicializovat / přidat zkusil jsem vložit tento kód .... $("body").on('click', "a.editmytab", function () { alert('ahoj'); }); $("div#ajax-spinner").hide(); ... a tento alert-ahoj se provede |
||
Kajman Profil |
No, právě proto potřebujeme živou ukázku, kde to nefunguje. Bez toho si musíte poradit sám. Věšteckou kouli nemáme.
Zkontrolujte si, jestli se nemění className, jestli konzole nepíše nějaké chyby, co by ukončily vykonávání js. Pořádně se podívejte, jestli tam je on a ne one. Jestli tam není jiný on click, který event ukončí a dál se nezpracovává. Jestli tam není off, který on zruší. Možností je spousta, bez živé ukázky to je jen na Vás nebo nějakém kolegovi, co se tam také dostane. |
||
vlkodlak Profil |
#9 · Zasláno: 5. 5. 2021, 12:19:11
Kajman:
ok, děkuji i tak |
||
Keeehi Profil |
Taky ještě víš jednu věc. Pokud jsi to zkopíroval do živé ukázky (tím myslím že jsi tam nic neměnil) tak víš že tahle část kódu je správně a problém musíš hledat v jiných částech kódu. Pokud jsi něco měnil nebo mazal, zaměřil bych se primárně na tyto části, jelikož ty mohly způsobovat ten problém a tím že jsi je změnil/odstranil, tak jsi to taky vyřešil.
Jinak v kódu co je tady při úspěchu odesíláš nějaký formulář. $('form#frm-absence').on('submit') Ještě můžeš zkusit vyměnit $("body").on('click', "a.ed... $(document).on('click', "a.ed... |
||
vlkodlak Profil |
#11 · Zasláno: 5. 5. 2021, 14:23:00
Keeehi:
vyrobil jsem jinou zivou ukazku, ktera mozna lepe vystihne kamen urazu kdy pubodni text vymenim za text -> EDIT a co neprobehne je nasledna vzmena EDIt -> SAVE Živá ukázka |
||
anonym_ Profil * |
#12 · Zasláno: 5. 5. 2021, 14:39:16
|
||
vlkodlak Profil |
anonym:
dobry postreh, DEKUJI, pres stromy nevidim les .... s tim ON, prosim o lepsi nakopnuti presto potrebuji vytvorit akci ktera, asi v momente zmeny ITEM na SAVE, bude registrovana do zpracovani a ten krok bude pokracovat z SAVE po dalsim kliku zmenen na EDIT |
||
Kajman Profil |
#14 · Zasláno: 5. 5. 2021, 16:40:51
$('.edit-line').click(function()... $(document).on('click', '.edit-line',function()... Když si přečtete manuál k on, pochopíte rozdíl. Té druhé možnosti se říká delegování. To použil anonym_ a proto mu to funguje. |
||
vlkodlak Profil |
#15 · Zasláno: 5. 5. 2021, 18:44:51
dekuji vsem zucastnenym
|
||
Časová prodleva: 3 roky
|
0