Autor | Zpráva | ||
---|---|---|---|
jar.ek Profil * |
#1 · Zasláno: 10. 3. 2012, 19:54:15
Zdravím!
Mám problém: v <head> mám definovanou funkci <script type="text/javascript"> function deleteComment(id) { ... } kterou později v <body> volám: <script>deleteComment(1);</script> bohužel funkce se nevykoná. Chrome mi hází tuto chybu: Uncaught TypeError: Object [object Object] has no method 'deleteComment' Proč? Děkuji... |
||
Someone Profil |
#2 · Zasláno: 10. 3. 2012, 19:55:36
co je obsahem funkce?
|
||
jar.ek Profil * |
#3 · Zasláno: 10. 3. 2012, 20:10:00
Funkce volá jQuery funkci z externího souboru.
function deleteComment(id) { jQuery.fn.deleteComment(id); } Obsah funkce jQuery.fn.deleteComment(id): jQuery.fn.deleteComment = function(id) { $.ajax({ type: "GET", url: "./deleteComment.php", data: "cid="+id, success: function(d){ switch(d) { case 0: alert('Nastala nečekaná chyba: '+d); break; case 1: reloadComments(); break; case 2: //comment v db neni //alert('Nastala nečekaná chyba: '+data); break; case 3: // pri mazani nastala chyba, nebo se v db nenachazi alert('Nastala nečekaná chyba: '+d); break; case 4: // neni vlastnikem alert('Nejste autorem příspěvku.'); break; default: alert('Nastala nečekaná chyba: '+d); } } }); } |
||
Radek9 Profil |
#4 · Zasláno: 10. 3. 2012, 22:52:52
jar.ek:
Nesnažíš se tu metodu volat ještě před definováním? Mimochodem, můžu mít takové dva všetečné dotazy? 1) Proč proboha tu funkci přiřazuješ do prototypu jQuery? 2) Víš, že při každém zavolání té funkce se do success ukládá nová funkce? Podle mě by bylo snazší si ji definovat jen jednou a používat ji univerzálně. |
||
jar.ek Profil * |
#5 · Zasláno: 11. 3. 2012, 00:26:29
Radek9:
Ano bude to tím... Odpověď na otázky: 1) Jsem začátečník, takto jsem to vyčetl z nějaké stránky. Nejsem vševědoucí abych věděl, že to lze udělat i jinak. Chybama se člověk učí. Budu rád, když mi poradíte, jak to udělat správně. 2) Ehm, která funkce se ukládá kam? Moc Vám nerozumím :) (začátečník), prosím o vysvětlení. |
||
Radek9 Profil |
jar.ek:
Ad 1) Prototyp funkce (jQuery) je objekt, do kterého se nahlíží v instancích daného objektu. Tzn., že bude fungovat toto, ale bude to postrádat smysl: $("div").deleteComment(10); (function($){ function callback(d){ switch(d) { case 0: alert('Nastala nečekaná chyba: '+d); break; case 1: reloadComments(); break; case 2: //comment v db neni //alert('Nastala nečekaná chyba: '+data); break; case 3: // pri mazani nastala chyba, nebo se v db nenachazi alert('Nastala nečekaná chyba: '+d); break; case 4: // neni vlastnikem alert('Nejste autorem příspěvku.'); break; default: alert('Nastala nečekaná chyba: '+d); } } $.deleteComment = function(id) { $.ajax({ type: "GET", url: "./deleteComment.php", data: "cid="+id, success: callback }); } })(jQuery); window , nevidím moc důvod ji lepit k jQuery.
|
||
jar.ek Profil * |
#7 · Zasláno: 11. 3. 2012, 11:41:28
Ano, rozumím.
Děkuji za vysvětlení. |
||
Časová prodleva: 12 let
|
0