Zum Inhalt springen

Frage zu JavaScript Objekt und JQuery Funktionalität


Empfohlene Beiträge

Geschrieben

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

Geschrieben

Danke für die Antwort !

Sehe ich das dann richtig, dass das JSON Objekt dann die Attribute jQuery, l10n, bindTestResult, createAutocomplete und createTest hat?

Und das Objekt Var dann nur dass Attribut Test?

Grüße

Kossy

Geschrieben (bearbeitet)

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
Geschrieben

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

Geschrieben
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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...