Jquery plugins jQWidgets拆分器小部件导致焦点丢失或事件消耗
我正在使用拆分器,并且在启用拆分器时遇到一些奇怪的行为。当它被禁用时,这种奇怪的行为就会停止。我创造了一个-这是我能得到的最简单的 要重新创建问题,请执行以下操作:Jquery plugins jQWidgets拆分器小部件导致焦点丢失或事件消耗,jquery-plugins,jquery-events,Jquery Plugins,Jquery Events,我正在使用拆分器,并且在启用拆分器时遇到一些奇怪的行为。当它被禁用时,这种奇怪的行为就会停止。我创造了一个-这是我能得到的最简单的 要重新创建问题,请执行以下操作: 加载JSFIDLE,在执行任何操作之前,将鼠标悬停在Submit上 按钮或“字符串”选项卡 提交按钮应更改为红色颜色,并显示“字符串” 选项卡也会更改样式 接下来,在一些空白处单击,例如,在Submit下面 按钮或“字符串”选项卡 现在,将鼠标移到按钮或选项卡上-样式不再为更改 要么 如果在某个空白处再次单击,则鼠标悬停,样式 确实
颜色
,并显示“字符串”
选项卡也会更改样式$('#splitter').jqxSplitter(splitterConf);
然后问题就消失了。splitter
div之外的任何HTML元素都不会遇到此问题
我唯一的想法是事件正在被拆分器消耗,而不是传播。然而,splitter
div没有附加任何事件,至少它们不会显示在Chrome的JavaScript调试器中
我注意到,当单击空格(触发问题)时,一个额外的div
元素被附加到DOM中:
此元素在以下代码中被jqxsplitter.js
追加:
initOverlay: function(c) {
var b = this;
if (b.overlay && c == undefined) {
b.overlay.remove()
} else {
b.overlay = a("<div></div>");
b.overlay.width(b.host.width());
b.overlay.height(b.host.height());
b.overlay.css("position", "absolute");
b.overlay.appendTo(a(document.body));
var d = b.host.offset();
b.overlay.css("left", d.left);
b.overlay.css("top", d.top)
}
但我不知道为什么会发生这种情况,或者为什么会引起问题。理想情况下,有人知道问题是什么,但如果不能做到这一点,一些关于如何调试/走向解决方案的提示将是很好的 来自团队
这是一个已知问题,将在下一版本中解决
Src:
_stopDrag: function(b) {
if (b._capturedElement) {
b._performAreaResize();
b._capturedElement.remove()
}
b._capturedElement = null;
b._initOverlay()