2

我正在尝试优化组合框代码,因为我在项目中存在一些延迟,因为我连续创建了四个输入框。在这个jFiddleappendChild()中使用而不是我有一些改进。但是当我单击每个输入字段右侧的下拉箭头时,我会出现奇怪的行为。insertAfter()

问:为什么会这样?或者到底发生了什么?有人可以指出如何解决这个问题吗?

更新#1:我的解释和问题暗示我已经尝试过原始代码并且速度很我想优化它!

更新#2:在使用 Chrome 开发人员工具进行简短分析后,我想我可能已经解决了这个问题。虽然最初的问题仍然存在。

我做了三个测试:

  1. 使用insertAfter(). 图片#1 图片#2
  2. 在函数中使用insertAfter()和删除。图片#3$.Widget.prototype.destroy.call(this);_destroy()
  3. 在函数中使用appendChild()和删除。图片#4$.Widget.prototype.destroy.call(this);_destroy()

测试评论:

  1. 似乎正在发生一些事件触发。由于函数$.Widget.prototype.destroy.call(this);调用_destroy(),我有多个$.widget._destroy()调用导致使用率约为 25%。参见图片#2。组合框的行为除外。
  2. 似乎$.Widget.prototype.destroy.call(this);从代码中删除会删除此事件触发。我不再看到延迟问题。行为例外。
  3. 似乎$.Widget.prototype.destroy.call(this);从代码中删除会删除此事件触发。我不再看到延迟问题。行为不例外。与上述解释中所述的行为相同。
4

0 回答 0