Jquery ui Sortable元素也会触发单击(但仅在Firefox中)。哪个浏览器是对的?

Jquery ui Sortable元素也会触发单击(但仅在Firefox中)。哪个浏览器是对的?,jquery-ui,firefox,click,jquery-ui-sortable,Jquery Ui,Firefox,Click,Jquery Ui Sortable,在Chrome和IE中,以下代码启用对列表项进行排序,当您释放鼠标按钮时,不会触发单击事件。但是,在Firefox(47.0及更早版本)中,单击事件也会触发 很明显,使用助手:“克隆”选项()是一个简单而有效的修复方法,可以停止触发单击事件。但从这个问题开始,时间已经流逝,浏览器已经更新,现在我想知道现代的Chrome/IE是否有正确的处理方式,Firefox是否应该计划修复它们 我的问题是:哪个浏览器“做得对”?是在排序后在FF中触发单击事件,还是这两种方法都“正确”并且只需进行补偿?Chro

在Chrome和IE中,以下代码启用对列表项进行排序,当您释放鼠标按钮时,不会触发单击事件。但是,在
Firefox(47.0及更早版本)
中,单击事件也会触发

很明显,使用
助手:“克隆”
选项()是一个简单而有效的修复方法,可以停止触发单击事件。但从这个问题开始,时间已经流逝,浏览器已经更新,现在我想知道现代的Chrome/IE是否有正确的处理方式,Firefox是否应该计划修复它们

我的问题是:哪个浏览器“做得对”?是在排序后在FF中触发单击事件,还是这两种方法都“正确”并且只需进行补偿?Chrome和IE是否在进行非标准黑客攻击

感谢您对这个令人困惑的问题和不同的浏览器方法有了更多的了解

显示行为直到FF改变其方式

<ol id='sortableFields'>
    <li>Click to reorder 1</li>
    <li>Click to reorder 2</li>
</ol>

<script>
$("#sortableFields").on("click", "li", function() {
    alert("This is the problem seen in ff");
});
$("#sortableFields").sortable({
    items: "li",
 /* helper: "clone",  A WAY TO FIX IT */
    update: function(event, ui) {
        console.log("Updating")
    })
});
</script>

  • 单击以重新排序1
  • 单击以重新排序2
  • $(“#可排序字段”)。在(“单击”、“li”,函数()上){ 警报(“这是ff中出现的问题”); }); $(“#可排序字段”)。可排序({ 物品:“李”, /*助手:“克隆”,一种修复它的方法*/ 更新:功能(事件、用户界面){ 控制台日志(“更新”) }) });

    解决此问题的另一种方法是使用
    元素包装列表,然后侦听该元素上的click事件,并在可排序的更新方法中使用
    event.stopPropogation()
    。但是,谁需要这种头痛呢?

    近距离投票,因为“哪种方法更好”,正如目前的措辞,不能权威地回答。为了获得更一致的行为,考虑使用<代码>鼠标下沉和<代码> MousUpU//COD>directly@blgt-如果没有任何关于浏览器(特别是Firefox)内部工作的建议,我可以关闭它。自2009年发布链接问题以来,Chrome和IE似乎已经改变了他们的行为,所以我想问的是,这些浏览器是否已经修复了bug(Firefox仍然存在问题),或者这两种方法是否都有效,我们必须围绕它进行编码。我不是问一种方法是否比另一种更好。我相信
    helper:'clone'
    选项已经赢得了这场辩论,我同意。