jquery.nette přepisuje metodu success v $.ajax

- JakubKohout
 - Člen | 92
 
Zdravím,
používam jquery.autocomplete a nette.jquery mi přepisuje neustále metody
success a start a nevím jak to obejít :/
V danym skriptu se zobrazí jenom alert s hláškou konec. A přitom ajax se normálně vykoná a přijdou zpátky data.
$.ajax({
	// try to leverage ajaxQueue plugin to abort previous requests
	mode: "abort",
	// limit abortion to this input
	port: "autocomplete" + input.name,
	dataType: options.dataType,
	url: options.url,
	data: $.extend({
			q: lastWord(term),
			limit: options.max
		}, extraParams),
		start: function(){
			alert('start');
		},
		success: function(data) {
			alert('bla');
			var parsed = options.parse && options.parse(data) || parse(data);
			cache.add(term, parsed);
			success(term, parsed);
		},
		complete: function(){
			alert('konec');
		}
});
				
- Honza Marek
 - Člen | 1664
 
dRaGen napsal(a):
Zdravím,
používam jquery.autocomplete a nette.jquery mi přepisuje neustále metody success a start a nevím jak to obejít :/
To je nějaká blbost. Nette.jquery nastavuje akorát defaultní success, který je možno kdykoliv přepsat. Taky nastavuje výchozí návratový typ na JSON, ale pokud dobře chápu tvůj kód, tak to taky měníš, čili v tom by problém být neměl.

- JakubKohout
 - Člen | 92
 
no problém je v jquery.nette.js konkrétně tedy v tomto
jQuery.ajaxSetup({
	success: jQuery.nette.success,
	dataType: "json"
});
Zkoušel sem přeházet pořadí includovanejch javascriptů a nepomohlo …
jinak ten plugin je toto: http://bassistance.de/…utocomplete/

- Panda
 - Člen | 569
 
dRaGen napsal(a):
no problém je v jquery.nette.js konkrétně tedy v tomto
jQuery.ajaxSetup({ success: jQuery.nette.success, dataType: "json" });Zkoušel sem přeházet pořadí includovanejch javascriptů a nepomohlo …
jinak ten plugin je toto: http://bassistance.de/…utocomplete/
V jakém formátu se Ti posílají data pro ten autocomplete? Nemůže být
problém s tím výchozím dataType: "json"? Výchozí callback by
skutečně vadit neměl.

- JakubKohout
 - Člen | 92
 
ty data jsou v korektním stavu (nick \n nick). V tomhle bych problém
neviděl.
Povšiměte si v tom prvnim postu co jsem napsal těch alertu, jedinej kterej
se zobrazi je ten posledni…

- Panda
 - Člen | 569
 
dRaGen napsal(a):
ty data jsou v korektním stavu (nick \n nick). V tomhle bych problém neviděl.
Povšiměte si v tom prvnim postu co jsem napsal těch alertu, jedinej kterej se zobrazi je ten posledni…
Hm, podle mě je přesně v tom ten problém. Začnu u popisu callbacku
success z jQuery dokumentace:
A function to be called if the request succeeds. The function gets passed two arguments: The data returned from the server, formatted according to the ‚dataType‘ parameter, and a string describing the status. This is an Ajax Event.
Z toho jsem pochopil, že před voláním callbacku musí proběhnout
parsování výstupu. Parsování výstupu se bere podle parametru
dataType, ten se použije podle výchozího nastavení, tzn. JSON.
A teď tomu chudákovi cpeš plaintext. A co se stane, když plaintext
parsuješ jako JSON? Parsování selže, tudíž se
nemůže zavolat metoda success (úspěch). Metoda
complete se naproti tomu volá vždy, ale skutečný výsledek
musíš získat například z jejích argumentů.
//Doplnění: Ještě bych doplnil, že to skutečně bylo tím.
Editoval Panda (27. 10. 2009 14:48)