Zum Inhalt springen

Frage zu JavaScript Objekt und JQuery Funktionalität


kossy

Empfohlene Beiträge

Hallo zusammen !

ich habe hier gerade ein Stückchen JavaScript Quellcode vor mir und dabei sind mir noch ein paar Kleinigkeiten unklar. Hier der Code (es ist leider etwas mehr Codierung, ich hoffe aber, dass trotzdem jemand drüber lesen mag):

Var.Test = {


	jQuery : {},


	l10n : {},


	bindTestResult : function(inputField, requestUrl, selectCallback) {


		var test = Var.Test.createTest(requestUrl,

				selectCallback);

		Var.Test.createAutocomplete(inputField, test);

	},	


	createAutocomplete : function(inputField, test) {

		Var.Test.jQuery(inputField).autocomplete(test).data(

				'autocomplete')._renderItem = function(ul, item) {

			Var.Test.jQuery(inputField).removeClass(

					'ui-autocomplete-loading');

			return Var.Test.jQuery('<li></li>').data(

					'item.autocomplete', item).append(

					'<a>' + item.output + '</a>').appendTo(ul);

		};

	},


	createTest: function(requestUrl, selectCallback){

		var l10n = Var.Test.l10n;

		return {

			minLength : 1,			

			source : function(request, response) {

				Var.Test.jQuery.ajax({

					url : requestUrl,

					dataType : "jsonp",

					data : {

						param : request.term

					},

					success : function(data) {

						if (data.errorCode == "complex_result") {

							response([ { 

								output : l10n.tooMuchSuggestions, value : "INVALID"

							} ]);

						} else if (data.suggestions.length == 0) {

							response([ { 

								output : l10n.noSuggestions, value : "INVALID" 

							} ]);

						} else{							

							response(data.suggestions);

						}

					},					

					error : function(jqXHR, textStatus, errorThrown) {

						console.log(textStatus);

					}

				});

			},


			focus : function(event, ui) {


				if (ui.item.value != "INVALID") {

					Var.Test.jQuery(this).val(ui.item.output);

					return false;

				} else {

					Var.Test.jQuery(this).val("");

				}

			},


			select : function(event, ui) {


				if (ui.item.value == "INVALID") {

					Var.Test.jQuery(this).val("");

					Var.Test.jQuery(this).blur();

					return false;

				} else {

					Var.Test.jQuery(this).blur();

					Var.Test.jQuery(this).val(ui.item.output);

					selectCallback(ui.item.value);

					return false;

				} 

			}

		}

	}				

};
Was genau wird hier in diesem Fall mit Var.Test= ganz zu Beginn überhaupt erzeugt? Ist das ein Objekt mit den Attributen jQuery, l10n, bindTestResult, createAutocomplete und createTest ? Oder ist das so etwas wie ein Array mit den Feldern jQuery, l10n, bindTestResult, createAutocomplete und createTest ? Das hier ist ist übrigens die Stelle innerhalb meiner XHTML Seite, in der das Objekt ?, Array? oder was auch immer verwendet wird:

<h:inputText style="width:100%;" id="testResult"

     value="#{refParam.XYZ}"										    

     onfocus="Var.Test.bindTestResult(this,'#{configuration.requestUrl}',methodXYZ)">

</h:inputText></td>

Was wäre super, wenn mir vielleicht jemand kurz erläutern könnte, was genau das Resultat ist, welches hier zurückgeliefert wird?

Danke und Gruß

Kossy

Link zu diesem Kommentar
Auf anderen Seiten teilen

bindTestResult, createAutocomplete und createTest sind Funktionen. Afaik (Achtung solides Halbwissen :>) ist das Ding damit auch kein gültiges JSON Objekt mehr, auch wenn das in diesem Fall vermutlich kein Problem ist.

Ob Var nur das Attribut Test hat, kann man an dem Schnipsel nicht erkennen.

Bearbeitet von rny
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo nochmal,

Kann mir vielleicht jemand von euch sagen, was genau dieses ui.item vom JQuery Framework im Detail ist? Ist das quasi eine Art Datenspeicher? Eine Art Datenbestand, der eben zur Laufzeit gefüllt und abgefragt werden kann?

Grüße

Kossy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kann mir vielleicht jemand von euch sagen, was genau dieses ui.item vom JQuery Framework im Detail ist?

Das ist nicht jQuery spezifisch: ui ist definiert als


function(event, ui)

ui ist somit ein Parameter der Funktion, was dort genau als Inhalt drin steckt steht nicht in Deinem geposteten Code.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...