Microsoft Edge和使用jQuery排序

前端之家收集整理的这篇文章主要介绍了Microsoft Edge和使用jQuery排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下代码适用于Firefox和Chrome,但使用Microsoft Edge(默认设置)列表项目未排序 – 它们是无序的.我正在使用MS Edge 20.10240.16384.0.

有没有人看到这个问题,并找到了解决方案? (这里的id是ul的容器)

$( id + ' li' ).sort(function ( a,b ) {
    return parseFloat( $( a ).attr( "id" ).replace( 'page','' ) )
         > parseFloat( $( b ).attr( "id" ).replace( 'page','' ) );
}).appendTo( id + ' ul' );

JS小提琴示例:https://jsfiddle.net/c1d8caa5/2/

解决方法

代码利用了原生的Array.prototype.sort方法,该方法在ECMAScript标准的第 22.1.3.24节中有所描述.此方法接受单个comparefn参数:

If comparefn is not undefined,it should be a function that accepts two arguments x and y and returns a negative value if x < y,zero if x = y,or a positive value if x > y. (emphasis added)

因此,请确保您的比较函数返回-1,0或1.此外,您可以从另一个中减去一个数字,这将产生负数,零或正数,从而满足要求.

虽然Microsoft Edge可能不会违反此标准,但如果其他主流浏览器更松散地实现此功能(接受布尔值),而Edge不支持,则可能会提出互操作问题并查看Edge是否应该对齐.

我在Edge团队工作,并将提交一个问题供考虑.

@H_502_45@

猜你在找的Windows相关文章