Ich habe zwei separate js-Dateien. Einer von ihnen, services
genannt, wo ich das Eingabefeld definiere und einige jQuery damit starte. Die andere Datei ruft services
auf und arbeitet mit dem zurückgegebenen Wert.Wert der Eingabe in jQuery-Ereignis gibt undefiniert
Wenn ich den Wert innerhalb der Funktion (in services
) verwende, wird der korrekte Wert zurückgegeben. Ansonsten in meiner secound Datei, es zurückgeben undefiniert, weil es wie scheint, wenn ich die Funktion aufrufen, ist es nicht warten, bis das .change
Ereignis ausgelöst wird
Services.js
var service = {
main: function() {
console.log(service.input);
},
init: function(input) {
service.input = input;
},
getInputValue: function() {
$('#' + service.input).change(function() {
return $('#' + service.input).val();
});
}
};
OtherJsFile.js
$(function(){
var inputField;
service.init('inputId');
inputField = service.getInputValue();
//Should print the value of inputId
//Instead it prints undefined
console.log(inputField);
});
Ich schätze jede Hilfe!
Sie zu erreichen nichts Rückkehr von 'getInputValue()', Sie sind nur etwas von dem Wechsel-Handler zurückkehrt (was nichts tut es sei denn, es wird falsch zurückgegeben). Wenn kein Rückgabewert vorhanden ist, gibt JavaScript standardmäßig undefined zurück - weshalb "inputField = undefined". Sie sollten Ihre Funktion wahrscheinlich auf 'return $ (" # "+ service.input) .val() ändern;' – mhodges
Vielen Dank für Ihre Antwort. Das wird mir nicht helfen, ich brauche dieses jQuery-Event – thissven
Ich glaube, du verstehst wirklich falsch, was du versuchst zu tun = | – mhodges