【问题标题】:Mouseup bug in all browsers except Firefox?除 Firefox 之外的所有浏览器中的 Mouseup 错误?
【发布时间】:2011-05-07 22:05:58
【问题描述】:

Mouseup 不会在滚动条上触发动态添加的元素(Firefox 除外):

CSS:

#dBox {
    height: 100px;
    width: 230px;
    overflow - y: auto;
}

HTML:

<input type="text" id="s">

JQuery:

$(function() {
    $('#s').focus(function() {
        var $dbox = $('<ul id="dBox"></ul>');
        for (i = 0; i < 10; i++) $dbox.append('<li>' + i + '</li>');
        $(this).after($dbox);
        $dbox.bind("mouseup", function() {
            alert('in: ');
            //console.log ('in: ');  
        });
    });
});
// OR LIKE THIS
$('#s').focus(function() {
    var $dbox = $('<ul id="dBox"></ul>');
    for (i = 0; i < 10; i++) $dbox.append('<li>' + i + '</li>');
    $(this).after($dbox);

});
$('#dBox').live("mouseup", function() {
    alert('in: ');
    //console.log ('in: ');  
});

如果您单击ul 上的任意位置,将触发但不会在滚动条上触发。除了火狐之外的所有浏览器都存在同样的问题。

如果在所有浏览器中将“mouseup”替换为“mousedown”,滚动条也会触发。

经过几次测试后,似乎它是否添加了动态的“ul”并没有什么不同,mouseup 似乎没有将滚动条识别为“ul”的一部分(FF 除外)。

如果将 'ul' 替换为 'div' 并将 'li' 替换为 'p' 也会出现同样的问题。
&lt;div id="dBox" class="" &gt;&lt;p&gt;1&lt;/p&gt;&lt;p&gt;2&lt;/p&gt;&lt;p&gt;3&lt;/p&gt;&lt;p&gt;4&lt;/p&gt;&lt;p&gt;5&lt;/p&gt;&lt;p&gt;6&lt;/p&gt;&lt;p&gt;7&lt;/p&gt;&lt;p&gt;8&lt;/p&gt;&lt;p&gt;9&lt;/p&gt;&lt;/div&gt;

$('#dBox').mouseup(function () {alert ('in: ');});

【问题讨论】:

  • 我认为您无法让 IE 触发 mouseup 事件。你想做什么?
  • @InvisibleBacon 我只是想做一个简单的弹出选择列表。但是 IE 在“mousedown”上不会返回 false。所以我试图做一个hack:解除'mousedown'上的模糊并再次绑定'mouseup'上的模糊。但我发现 mouseup 不会在所有眉毛的滚动条上触发(FF 除外):stackoverflow.com/questions/4140317/…
  • 经过几次测试后,即使 ul 和 li 放在原始文档上,mouseup 似乎也不会在滚动条上触发。 (FF除外)

标签: jquery mouse scrollbar live


【解决方案1】:

是的。这是 Chrome 上的开放错误:http://code.google.com/p/chromium/issues/detail?id=14204

在 webkit 上:https://bugs.webkit.org/show_bug.cgi?id=25811https://bugs.webkit.org/show_bug.cgi?id=40648

这是来自 Microsoft 的居高临下的“你不需要它”回复:http://social.msdn.microsoft.com/Forums/en-US/netfxjscript/thread/3749b8a1-53ef-48fe-be81-b2df39d6154f/

最后一个线程提出了使用 onscroll 代替 onmouseup 的可能性。这可能是部分解决方法。

【讨论】:

    猜你喜欢
    • 2011-03-20
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多