ejemplos close javascript jquery

javascript - close - Versión de comprobación de plugin jQuery



tooltip jquery ejemplos (15)

Cuando se escribe un nuevo complemento de jQuery, ¿hay una forma sencilla de verificar que la versión actual de jQuery está por encima de cierto número? Viendo una advertencia o registrando un error de lo contrario.

Sería bueno hacer algo como:

jQuery.version >= 1.2.6

en alguna forma u otra


¿Algo como eso?

Comprueba si jQuery está cargado, y si lo está, comprueba la versión. Este método funciona correctamente para los números de versión de 2 dígitos también (1.10.28), y si es necesario, puede extenderlo por 3 dígitos, si reemplaza los 100 números por 1000 ...

function checkJQueryMinVersion(need) { var v1 = need.split(''.''); var v1_num = 0; var v2 = jQuery.fn.jquery.split(''.''); var v2_num = 0; if(v1[0] != undefined) { v1_num += 100*100*parseInt(v1[0]); } if(v1[1] != undefined) { v1_num += 100*parseInt(v1[1]); } if(v1[2] != undefined) { v1_num += parseInt(v1[2]); } if(v2[0] != undefined) { v2_num += 100*100*parseInt(v2[0]); } if(v2[1] != undefined) { v2_num += 100*parseInt(v2[1]); } if(v2[2] != undefined) { v2_num += parseInt(v2[2]); } return (v1_num <= v2_num); } if(!window.jQuery || !checkJQueryMinVersion(''1.10.28'')) { alert(''Loading //ajax.googleapis.com/ajax/libs/jquery/1.10.28/jquery.min.js''); var script = document.createElement(''script'');script.type = ''text/javascript''; script.src = ''//ajax.googleapis.com/ajax/libs/jquery/1.10.28/jquery.min.js''; document.getElementsByTagName(''head'')[0].appendChild(script); } else { alert(''Jquery version OK''); }


Aquí hay una verificación que usé para asegurarme de que el usuario estaba usando al menos v. 1.3.2 de jQuery.

if (/1/.(0|1|2|3)/.(0|1)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery) || /^1.2/.test($.fn.jquery)) { //Tell user they need to upgrade. }


Divide la cadena de la versión jQuery en números para probar su valor. Algunas cadenas de versión no contienen un incremento, por lo que debe ser 0.

var version = $.fn.jquery.split(''.''), versionMinor = parseFloat(version[1]), versionIncrement = parseFloat(version[2] || ''0''); if (versionMinor === 4 && versionIncrement < 3 || versionMinor < 4) { $.error(''Requires jQuery 1.4.3 or higher to support ...''); }

Utilice la función de error jQuery para evitar la ejecución con una explicación para el desarrollador.


En lugar de usar parseInt como vi en una de las respuestas anteriores, sugeriría usar parseFloat como se menciona a continuación

var _jQueryVer = parseFloat(''.''+$().jquery.replace(//./g, '''')); /* Here the value of _jQueryVer would be 0.1012 if the jQuery version is 1.0.12 which in case of parseInt would be 1012 which is higher than 140 (if jQuery version is 1.4.0) */ if(_jQueryVer < 0.130) { alert(''Please upgrade jQuery to version 1.3.0 or higher''); }


Encontré esto en jquery.1.3.2 fuente:

jQuery.fn = jQuery.prototype = { init: function( selector, context ) { ..... // The current version of jQuery being used jquery: "1.3.2",

No verifiqué, pero algo como "$ .fn.jQuery" podría funcionar.


Me sorprende que nadie haya dado esta solución todavía:

//Returns < 0 if version1 is less than version2; > 0 if version1 is greater than version2, and 0 if they are equal. var compareVersions = function (version1, version2){ if(version1 == version2)return 0; var version1Parts = version1.split(''.''); var numVersion1Parts = version1Parts.length; var version2Parts = version2.split(''.''); var numVersion2Parts = version2Parts.length; for(var i = 0; i < numVersion1Parts && i < numVersion2Parts; i++){ var version1Part = parseInt(version1Parts[i], 10); var version2Part = parseInt(version2Parts[i], 10); if(version1Part > version2Part){ return 1; } else if(version1Part < version2Part){ return -1; } } return numVersion1Parts < numVersion2Parts ? -1 : 1; }


Pase la versión como una matriz de enteros, como jQmin([1,4,2]) para verificar si la versión actual es igual o superior a v1.4.2.

function jQmin(min) { var i, cur, cver = $.fn.jquery, c = cver.split("."); while (min.length < c.length) min.push(0); for (i = 0; i < min.length; i++) { cur = parseInt(c[i]); if (cur > min[i]) return true; if (cur < min[i]) return false; } return (cver === min.join(".")); }


Prueba esto:

>>> jQuery.fn.jquery; "1.3.2"


Qué pasa:

function minVersion(version) { var $vrs = window.jQuery.fn.jquery.split(''.''), min = version.split(''.''), prevs=[]; for (var i=0, len=$vrs.length; i<len; i++) { console.log($vrs[i], min[i], prevs[i-1]); if (min[i] && $vrs[i] < min[i]) { if (!prevs[i-1] || prevs[i-1] == 0) return false; } else { if ($vrs[i] > min[i]) prevs[i] = 1; else prevs[i] = 0; } } return true;

}

Escribí ese código en mi página bifurcada: https://gist.github.com/budiadiono/7954617 , código original escrito por dshaw en: https://gist.github.com/dshaw/652870 .


Si es suficiente para verificar la versión secundaria, no la versión de parche, puedes hacer algo como

parseFloat(jQuery.fn.jquery) >= 1.9

Es posible cambiar esto ligeramente para verificar> = 1.4.3: parseFloat(jQuery.fn.jquery) > 1.4 || parseFloat(jQuery.fn.jQuery) == 1.4 && parseFloat(jQuery.fn.jQuery.slice(2)) >= 4.3 parseFloat(jQuery.fn.jquery) > 1.4 || parseFloat(jQuery.fn.jQuery) == 1.4 && parseFloat(jQuery.fn.jQuery.slice(2)) >= 4.3


Siento que todas las soluciones son bastante voluminosas, ¿me falta algo debajo de la mía?

Versión comprimida:

(parseInt(jQuery.fn.jquery.split(''.'').join('''')) > 140) ? alert("Running jquery greater than 1.4.0") : alert("current jquery version is 1.4.0 or less");

Versión larga para mayor claridad:

// get version as a string and get rid of the periods. version = jQuery.fn.jquery.split(''.'').join(''''); // Make into one long number for easy comparison. Example, 171, or 141. version = parseInt(version); if(version > 141){ alert("We''re using a version greater than 1.4.1"); }else{ alert("jQuery version is 1.4.1 or lower"); }



Ya que no hay una versión jquery que nos permita más de un dígito, se puede usar de manera segura.

if ([$.fn.jquery,"1.6"].sort()[0] == "1.6") { // jquery version greater or same as 1.6 } else { // jquery version lower than 1.6 }


La única respuesta correcta es usar una función de comparación de versiones.

Muchas de las respuestas aquí hacen suposiciones realmente deficientes de que incluso un poco de pensamiento crítico puede mostrarse incorrecto, como suponer que cada subversión es un dígito, o que jQuery nunca alcanzará la versión 2. No quiero volver a hacer hash en esta respuesta, pero esos períodos tienen un significado: Significa que "lo que esté a mi izquierda es un número que importa más que todo a mi derecha". componente si el primer par coincide exactamente, y así sucesivamente.

El número de versión de jQuery está disponible en $.fn.jquery como se indica en muchas otras respuestas aquí. Es una cadena, y su función de comparación de versión debe esperar cadenas.

Aquí hay un puerto de la función de comparación de versiones de PHP para JS . Tenga en cuenta que probablemente sea una exageración para jQuery, especialmente si asume que solo verá números y no se ocupará de los candidatos de lanzamiento y similares. Pero será confiable y seguro para el futuro.


$().jquery;

o

jQuery.fn.jquery;