私は2つの別々のjsファイルを持っています。そのうちの1つはservices
と呼ばれ、入力フィールドを定義してjQueryを実行します。もう1つのファイルはservices
を呼び出し、返された値で動作します。jQueryイベントの入力値がundefineを返す
関数内の値(services
)を使用すると、正しい値が返されます。それはのように思えるので、それ以外の場合は、私のsecoundファイルで、それは私が関数を呼び出す場合.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
をトリガされるまで、それは待っていない、undefinedを返すん$(function(){
var inputField;
service.init('inputId');
inputField = service.getInputValue();
//Should print the value of inputId
//Instead it prints undefined
console.log(inputField);
});
ご協力いただきありがとうございます。
を達成しようとしているのかわからないんだけど正直に言うと、あなただけの何もしない(変更ハンドラから何かを戻ってきていますfalseを返さない限り)。デフォルトでは戻り値がない場合、JavaScriptは未定義を返します。そのため、 'inputField = undefined 'です。おそらく関数を '$("# "+ service.input).val();に返すべきです。 – mhodges
あなたの答えをありがとう。これは私を助けません、私はこのjQueryイベントが必要です – thissven
私はあなたが本当にあなたがしようとしていることを誤解したと思う= | – mhodges