Ajax a jQuery suggest

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Mas3r
Člen | 116
+
0
-

Zdravím

Snažím se implementovat jQuery Suggest plugin. Skoro vše funguje OK, do Firebugu se vypíše GET s „našeptanými“ možnostmi, bohužel se neprovede úprava <ul> na konci <body> jako obvykle. Tipuju, že tam bude někde problém s Nette jQuery pluginem…

Problém způsobuje:

<script>
jQuery.ajaxSetup({
    success: function (data) {
        jQuery.netteCallback(data);
    },
    dataType: "json"
});
</script>

Dá se to nějak opravit?

Honza Marek
Člen | 1664
+
0
-

Jako nepochopil jsem, co je úprava <ul> na konci <body>.

Ale budu předpokládat, že očekáváš, že se ti vrátí html a někam se připojí (asi na konec body). To zařídíš takto:

$.get(url, {parametr: "hodnota"}, function (html) {
	$("body").append(html);
}, "html");

Tím čtvrtým parametrem přebiješ defaultní návratový typ, jehož nastavení vyžaduje ten Nette jQuery AJAX Plugin.

Mas3r
Člen | 116
+
0
-

Ten suggest to však udělá sám, jenže Nette jQuery plugin veme všechny Ajaxové požadavky, což přebije ten suggest, takže se nevykoná.

Honza Marek
Člen | 1664
+
0
-

Nette jQuery plugin nepřebíjí žádné požadavky.

Mas3r
Člen | 116
+
0
-

Ok, díky. Máš pravdu. Takž pro ostatní – stačí změnit $.get fci a to tak, že tam přidáte to „html“

<script>
			function suggest() {

				var q = $.trim($input.val());

				if (q.length >= options.minchars) {

					cached = checkCache(q);

					if (cached) {

						displayItems(cached['items']);

					} else {

						$.get(options.source, {q: q}, function(txt) {

							$results.hide();

							var items = parseTxt(txt, q);

							displayItems(items);
							addToCache(q, items, txt.length);

						}, "html");

					}

				} else {

					$results.hide();

				}

			}
</script>