文字列を関数eval()
を使用せずに関数に変換しようとしていますが、関数名をウィンドウオブジェクトに渡してその型をチェックするときは常にそうです。 Javascriptはそれを関数として認識していないようです。私はいつも私がelse文で定義したこのカスタムエラーメッセージを受け取る:"Could not find function: 1->validateLogin"
。文字列から変換された関数が見つかりません
マイdom_ready
プロトタイプ:
dom_ready: function (inputFunc) {
document.addEventListener("DOMContentLoaded", function() {
try {
inputFunc();
} catch (e) {
DN.errors.push(e.message);
}
});
},
function show_pass() {
...
}
function validateLogin(k) {
...
}
DN.DOM.dom_ready(function() {
var event_ids = [
["#login-form-dialog", "validateLogin", "submit", 1]
["#loginnotes", "validateLogin", "click", 1],
["#loginnotes2", "validateLogin", "click", 2],
["#show-pass", "show_pass", "click", ""],
]
for (var i = 0; i < event_ids.length - 1; i++) {
var fN = window[event_ids[i][1]];
if (typeof fN === 'function') {
$(event_ids[i][0]).on(event_ids[i][2], function() {
fN(event_ids[i][3]);
})
} else {
console.log("Could not find function: " + i + "->" + event_ids[i][1]);
}
}
});
ありがとうございます。もう少し注意を払う時間。 –
この段階では、コンマが見つからないIDEを誰も使用していないとは思えません。私はWebStorm(コストのお金)、Sublime Text(試してみると無料ですが、お金を払うことなく無期限に使うことができます)、Atom(無料ですが時々バギー)を使いました。 – Andrew
問題がタイプミスである場合は、入力ミスとして閉じるように投票し、おそらくコメントを残します。あなたが本当に答えを出したいのであれば、カンマを忘れるたびに彼がほとんど来ないので、OPに自分のタイプミスを見つける方法を教えてください。 –