【发布时间】:2018-07-31 11:41:26
【问题描述】:
在我的 Ember 应用程序中,我有一些 jQuery 代码要执行(基于粘贴到输入框)
我的问题是我在我的代码中使用了“一个”,但它被执行了不止一次。根据 jQuery 文档,它应该只被调用一次。
didRender: function() {
var self = this;
var $inputs = Ember.$("input[id*=my-field]");
$inputs.on("paste", function() {
var $this = Ember.$(this);
var originalValue = $this.val();
$this.val("");
$this.one("input", function() {
// Why is this getting invoked more than once ?
// Contains code which splits & sets value to multiple textboxes like
//$inputBox.val('SPLITTED_PASTED_VALUE');
});
});
}
【问题讨论】:
-
它会根据您调用
.one的次数被调用——因为它在 另一个 事件处理程序中,每次粘贴时都会收到一个新事件。跨度> -
-
.one运行一次 - 如果您在第一次运行之前再次调用.one(..)然后.one(..),那么您会得到两次。请参阅jsfiddle.net/D7jVR/1048(单击按钮时的console.log)这可能不是问题/原因,但主要代表“纯jQuery”。 -
不太确定为什么需要
.one- 继续代码?或使用setTimeout。 -
所以我想要的是如果粘贴的值不是一定长度,我想恢复到旧值(在 texbox 中)
标签: javascript jquery ember.js