我正在尝试优化组合框代码,因为我在项目中存在一些延迟,因为我连续创建了四个输入框。在这个jFiddleappendChild()
中使用而不是我有一些改进。但是当我单击每个输入字段右侧的下拉箭头时,我会出现奇怪的行为。insertAfter()
问:为什么会这样?或者到底发生了什么?有人可以指出如何解决这个问题吗?
更新#1:我的解释和问题暗示我已经尝试过原始代码并且速度很慢我想优化它!
更新#2:在使用 Chrome 开发人员工具进行简短分析后,我想我可能已经解决了这个问题。虽然最初的问题仍然存在。
我做了三个测试:
- 使用
insertAfter()
. 图片#1 图片#2 - 在函数中使用
insertAfter()
和删除。图片#3$.Widget.prototype.destroy.call(this);
_destroy()
- 在函数中使用
appendChild()
和删除。图片#4$.Widget.prototype.destroy.call(this);
_destroy()
测试评论:
- 似乎正在发生一些事件触发。由于函数
$.Widget.prototype.destroy.call(this);
调用_destroy()
,我有多个$.widget._destroy()
调用导致使用率约为 25%。参见图片#2。组合框的行为除外。 - 似乎
$.Widget.prototype.destroy.call(this);
从代码中删除会删除此事件触发。我不再看到延迟问题。行为例外。 - 似乎
$.Widget.prototype.destroy.call(this);
从代码中删除会删除此事件触发。我不再看到延迟问题。行为不例外。与上述解释中所述的行为相同。