kossy Geschrieben 10. Mai 2013 Geschrieben 10. Mai 2013 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 Zitieren
flashpixx Geschrieben 10. Mai 2013 Geschrieben 10. Mai 2013 Du weist der Eigenschaft "Test" des Objektes "Var" ein JSON Objekt zu Zitieren
kossy Geschrieben 10. Mai 2013 Autor Geschrieben 10. Mai 2013 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 Zitieren
rny Geschrieben 10. Mai 2013 Geschrieben 10. Mai 2013 (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 10. Mai 2013 von rny Zitieren
kossy Geschrieben 12. Mai 2013 Autor Geschrieben 12. Mai 2013 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 Zitieren
flashpixx Geschrieben 12. Mai 2013 Geschrieben 12. Mai 2013 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. Zitieren
Empfohlene Beiträge
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.