gpt4 book ai didi

javascript - 检查 Meteor 中的输入

转载 作者:搜寻专家 更新时间:2023-11-01 05:13:11 25 4
gpt4 key购买 nike

我正在尝试理解 Meteor 中的 Todos 示例。有一段代码我无法理解:

// Returns an event map that handles the "escape" and "return" keys and
// "blur" events on a text input (given by selector) and interprets them
// as "ok" or "cancel".
var okCancelEvents = function (selector, callbacks) {
var ok = callbacks.ok || function () {};
var cancel = callbacks.cancel || function () {};

var events = {};
events['keyup '+selector+', keydown '+selector+', focusout '+selector] =
function (evt) {
if (evt.type === "keydown" && evt.which === 27) {
// escape = cancel
cancel.call(this, evt);

} else if (evt.type === "keyup" && evt.which === 13 ||
evt.type === "focusout") {
// blur/return/enter = ok/submit if non-empty
var value = String(evt.target.value || "");
if (value)
ok.call(this, value, evt);
else
cancel.call(this, evt);
}
};
return events;
};

events['keyup '+selector+', keydown '+selector+', focusout '+selector] = function(){} 产生什么结果?

为什么我们需要将以下内容转换为字符串:String(evt.target.value || "")

上述函数的 evt 参数是否必须具有 .type、.target 和 .target.value?我可以在 evt 中传递什么?

最佳答案

我将问题分为三个部分:

events['keyup '+selector+', keydown '+selector+', focusout '+selector] = function(){} 产生什么结果?

okCancelEvents 方法是一种包装 keyup 的方法, keydownfocusout围绕单个函数的 DOM 事件将每个函数的结果的详细信息整理到自定义的 okcancel 事件中。

这会产生一个 EventMap绑定(bind)到 Template.todos.events implementation 的对象这样所有的 keyupkeydownfocusout 事件都以 okcancel 的形式通过> 通过 EventMap

为什么我们需要将以下内容转换为字符串:String(evt.target.value || "")?

我觉得没必要。 var value = evt.target.value || "" 同样有效,因为浏览器将 interpret a string primitive as a string object .

上述函数的 evt 参数是否必须有 .type、.target 和 .target.value?我可以在 evt 中传递什么?

evt 参数是传入的 event来自 keyupkeydownfocusout 方法以及 targettarget.value是此原生 event 对象的内置属性。您不需要手动构建它。

关于javascript - 检查 Meteor 中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14721644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com