Kri*_*rma 2 javascript parameters jquery anonymous-function
我的原始(工作)代码如下所示:
jQuery().ready(function ($) {
$('[id="errorMessages"]').ajaxStart(function () {
$(this).html("");
});
$('[id="errorMessages"]').ajaxError(function (e, jqxhr, settings, exception) {
//...
});
});
Run Code Online (Sandbox Code Playgroud)
当我试图将匿名函数替换为命名函数时,调用如下:(我正在为某些需求做一个POC,期望这样的实现.)
function fs() {
$(this).html("");
}
function fe(e, jqxhr, settings, exception) {
//...
}
jQuery().ready(function ($) {
$('[id="errorMessages"]').ajaxStart(fs());
$('[id="errorMessages"]').ajaxError(fe(e, jqxhr, settings, exception));
});
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,说明参数'e'未定义.但没有参数的函数似乎工作正常.
我想知道匿名函数如何接收参数,而调用外部函数时则不可用.
有没有办法将这些参数化的匿名函数转换为常规函数调用.
您正在将功能错误地分配给处理程序,请尝试以下操作:
jQuery().ready(function ($) {
$('[id="errorMessages"]').ajaxStart(fs);
$('[id="errorMessages"]').ajaxError(fe);
});
Run Code Online (Sandbox Code Playgroud)
请注意,传递不带括号的函数名称意味着您将提供该事件发生时应使用的函数的引用.
当前代码将在附加事件时调用该函数(因此您获得的原因'e' is undefined)并将函数的结果分配给事件处理程序.
| 归档时间: |
|
| 查看次数: |
1226 次 |
| 最近记录: |