javascript - 在 JQuery 中是否可以跳过可选参数并传递下一个参数?

标签 javascript jquery

在 JQuery 中是否可以跳过可选参数并传递下一个参数?如果是,jquery 函数如何确定哪个值对应哪个参数?

一个例子:

//
// function signature is
// jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
//
// function is called as
//
$.get('ajax/test.html', function (data) {
    $('.result').html(data);
    alert('Load was performed.');
});

在 url 之后调用 $.get() 时,跳过 [, data],然后传递成功回调。

最佳答案

是的,可以跳过可选参数,甚至可以从中间开始。 jQuery 查看参数的类型来确定哪个是哪个。看看 jQuery.load 的签名:

.load(url [, data] [, complete(responseText, textStatus, XMLHttpRequest)])

下面的工作按预期进行:

.load("test.php")
.load("test.php", {foo: bar})
.load("test.php", {foo: bar}, function(){})
.load("test.php", function(){}) // you skipped the 2nd parameter? no.

您会注意到这三个参数是:stringobjectfunction。在函数内部,jQuery 可以轻松检查传递了多少参数及其类型。如果它注意到第二个参数是一个函数,它将假定 data 参数被跳过并采取相应的行动。

令您惊讶的是,还有另一个 jQuery.load具有不同签名的功能完全不同:

.load(handler(eventObject))
.load([eventData], handler(eventObject))

同样,jQuery 可以通过查看参数来确定触发哪个方法。

关于javascript - 在 JQuery 中是否可以跳过可选参数并传递下一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125968/

相关文章:

javascript:检测滚动结束

javascript - 如何删除 Ammap map 控件覆盖?

javascript - 窗口 innerWidth 大小更改时的 AngularJS 事件

javascript - Mongoose findByIdAndUpdate 方法来切换和更新数据库中的 bool 值

javascript - 使用选择显示来自对象的图像

javascript - 等待 javascript 函数返回

javascript - 不可点击的分层元素,Z-Index 不起作用

javascript - KineticJS 中的约束/比例缩放

javascript - 单击 iframe 中的链接后防止重定向

javascript - 使用 Dojo 禁用 DIV 中的所有小部件