【发布时间】:2017-02-02 22:37:29
【问题描述】:
我有两个单独的 js 文件。其中之一,称为services,我在其中定义输入字段并使用它运行一些 jQuery。另一个文件调用services 并使用返回的值。
如果我使用函数中的值(在services 中),它会返回正确的值。否则,在我的第二个文件中,它确实返回 undefined 因为看起来,如果我调用该函数,它不会等到.change 事件被触发
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);
});
感谢您的帮助!
【问题讨论】:
-
你没有从
getInputValue()返回任何东西,你只是从更改处理程序返回一些东西(除非返回 false,否则它不会做任何事情)。默认情况下,如果没有返回值,JavaScript 会返回 undefined - 这就是inputField = undefined的原因。您可能应该将您的功能更改为return $("#" + service.input).val(); -
感谢您的回答。这对我没有帮助,我需要这个 jQuery 事件
-
我认为你真的误解了你想要做什么=|
标签: javascript jquery scope