Jquery ui Sortable元素也会触发单击(但仅在Firefox中)。哪个浏览器是对的?
在Chrome和IE中,以下代码启用对列表项进行排序,当您释放鼠标按钮时,不会触发单击事件。但是,在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
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'
选项已经赢得了这场辩论,我同意。