Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Incompatibilidad irresoluble???

Estas en el tema de Incompatibilidad irresoluble??? en el foro de Frameworks JS en Foros del Web. Hola. He instalado el menú vertical de Superfish que podéis ver en Superfish Luego he instalado un sistema de tabs con efecto fade. El caso ...
  #1 (permalink)  
Antiguo 09/05/2013, 07:08
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Incompatibilidad irresoluble???

Hola.

He instalado el menú vertical de Superfish que podéis ver en

Superfish

Luego he instalado un sistema de tabs con efecto fade.

El caso es que de todas las incompatibilidades que tengo en el sitio, y que he ido resolviendo, ésta es la única que no consigo solucionar.

Se trata de que el archivo jquery-1.9.1.min.js (o el supersubs.js) necesarios para el efecto fade del menú Superfish es incompatible con el sistema de tabs, de tal forma que si quiero que las tabs funcionen correctamente, tengo que quitar el jquery-1.9.1.min.js, con lo cual el menú Superfish deja ver los submenús de golpe, sin ralentización.

He intentado aplicar la solución descrita en esta dirección

http://stackoverflow.com/questions/1...-the-same-page

Sin conseguirlo.

¿Conocéis alguna otra solución?

Gracias.
  #2 (permalink)  
Antiguo 09/05/2013, 09:07
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Respuesta: Incompatibilidad irresoluble???

Después de darle más vueltas al asunto y viendo que no se soluciona, he pensado en añadir no.conflict al código del archivo

jquery-1.9.1.min.js

Insertando en el inicio

jQuery.noConflict();
jQuery(document).ready(function(){

y sustituyendo todas las $ por jQuery.

Pero no me funciona.

En otro caso que solucioné por este sistema, el código comenzaba así:

(function(){

var
// Will speed up references to window, and allows munging its name.
window = this,

...............................

y lo puse así:

jQuery.noConflict();
jQuery(document).ready(function(){

var
// Will speed up references to window, and allows munging its name.
window = this,

.....................

Sustituyendo todo lo demás por jQuery.

Pero aquí no funciona.

¿Será por la diferencia en el código?

Mis conocimientos no me permiten averiguar el problema.

Os pongo el comienzo del código conflictivo en a continuación:


Código:
/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery.min.map
*/
(function (e, t) {
    var n, r, i = typeof t,
        o = e.document,
        a = e.location,
        s = e.jQuery,
        u = e.$,
        l = {}, c = [],
        p = "1.9.1",
        f = c.concat,
        d = c.push,
        h = c.slice,
        g = c.indexOf,
        m = l.toString,
        y = l.hasOwnProperty,
        v = p.trim,
        b = function (e, t) {
            return new b.fn.init(e, t, r)
        }, x = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
        w = /\S+/g,
        T = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
        N = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,
        C = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
        k = /^[\],:{}\s]*$/,
        E = /(?:^|:|,)(?:\s*\[)+/g,
        S = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
        A = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
        j = /^-ms-/,
        D = /-([\da-z])/gi,
        L = function (e, t) {
            return t.toUpperCase()
        }, H = function (e) {
            (o.addEventListener || "load" === e.type || "complete" === o.readyState) && (q(), b.ready())
        }, q = function () {
            o.addEventListener ? (o.removeEventListener("DOMContentLoaded", H, !1), e.removeEventListener("load", H, !1)) : (o.detachEvent("onreadystatechange", H), e.detachEvent("onload", H))

........................
  #3 (permalink)  
Antiguo 09/05/2013, 09:45
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 10 meses
Puntos: 23
Respuesta: Incompatibilidad irresoluble???

mmm alguna vez me paso y tambien afecta el orden en que mandas a llamar los archivos

por ejemplo, el orden debería ser:

1° el plugin que causa conflicto
2° luego el jquerynoconflict
3° despues el jquery.js
4° demás archivos que tengan codigo jquery

Eso podría ser...

Edito, ya me fije como le tengo:

Código HTML:
Ver original
  1. //estos me causan conflicto con jquery
  2. <script src="/js/carrusel/prototype.js"  type="text/javascript"></script>
  3. <script src="/js/carrusel/effects.js" type="text/javascript"></script>
  4. <script src="/js/carrusel/carousel.js" type="text/javascript"></script>
  5. //agrego la libreria jquery
  6. <script src="/js/jquery.js" type="text/javascript"></script>
  7. //agrego el noConflict
  8. <script type="text/javascript">jQuery.noConflict();</script>
  9. //pongo todos mis plugins jquery
  10. <script src="/js/simple_modal/jquery.simplemodal.js" type="text/javascript"></script>
  11. //...

Última edición por catpaw; 09/05/2013 a las 09:54
  #4 (permalink)  
Antiguo 09/05/2013, 10:34
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Respuesta: Incompatibilidad irresoluble???

Hola catpaw.

Gracias por contestas.

He hecho lo que me has dicho de las dos formas, poniendo uno detras de otro y viceversa, cambian el orden, y no se resuelve.

Lo tengo así:

Código:
<script type="text/javascript" src="javascript/hoverIntent.js"></script>
<script type="text/javascript" src="javascript/superfish.js"></script>
<script type="text/javascript"> 
//<![CDATA[  
(function($){ //create closure so we can safely use $ as alias for jQuery
  $(document).ready(function(){
  // initialise plugin
  var example = $('#menu-principal').superfish({
  //add options here if required
  });				
});
})(jQuery);
//]]>   
</script>
<script type="text/javascript" src="javascript/jquery-1.js"></script>
<script type="text/javascript" src="javascript/jquery.js"></script>
<script type="text/javascript">
//<![CDATA[ 
var $j = jQuery.noConflict();
$(function() {
$('#div-1').tabs({ fxFade: true, fxSpeed: 'slow' });
});
//]]>  
</script>
Si meto el archivo conflictivo (como sigue), el dropdown de Superfish funciona, pero el tab deja de funcionar:

Código:
<script type="text/javascript" src="javascript/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="javascript/hoverIntent.js"></script>
<script type="text/javascript" src="javascript/superfish.js"></script>
<script type="text/javascript"> 
//<![CDATA[  
(function($){ //create closure so we can safely use $ as alias for jQuery
  $(document).ready(function(){
  // initialise plugin
  var example = $('#menu-principal').superfish({
  //add options here if required
  });				
});
})(jQuery);
//]]>   
</script>
<script type="text/javascript" src="javascript/jquery-1.js"></script>
<script type="text/javascript" src="javascript/jquery.js"></script>
<script type="text/javascript">
//<![CDATA[ 
var $j = jQuery.noConflict();
$(function() {
$('#div-1').tabs({ fxFade: true, fxSpeed: 'slow' });
});
//]]>  
</script>
  #5 (permalink)  
Antiguo 09/05/2013, 10:52
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 10 meses
Puntos: 23
Respuesta: Incompatibilidad irresoluble???

Me causa ruido que llamas :

<script type="text/javascript" src="javascript/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="javascript/jquery-1.js"></script>
<script type="text/javascript" src="javascript/jquery.js"></script>

Parece que llamas la libreria 3 veces pero con diferente nombre y a lo mejor hasta diferentes versiones.

la libreria jquery (version que sea) se llama solo una vez aunque tengas muchos plugins

revisa que estos archivos que llamas no se traten de la misma libreria jquery
  #6 (permalink)  
Antiguo 09/05/2013, 11:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Respuesta: Incompatibilidad irresoluble???

No. Eso ya lo había pensado.

<script type="text/javascript" src="javascript/jquery-1.9.1.min.js"></script>

Viene con el Superfish y los otros dos con el sistema de tabs.

Además, son totalmente distintos.

No es eso.

¿No se podría aplicar el

jQuery.noConflict();
jQuery(document).ready(function(){

Al <script type="text/javascript" src="javascript/jquery-1.9.1.min.js"></script>

como he dicho antes.

No sé por qué no resulta.
  #7 (permalink)  
Antiguo 09/05/2013, 12:09
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 10 meses
Puntos: 23
Respuesta: Incompatibilidad irresoluble???

Pero el hecho de que venga en el plugin no significa que debes agregarlo si es que ya lo tienes, aun no me queda claro estos 2 entonces que son?

<script type="text/javascript" src="javascript/jquery-1.js"></script>
<script type="text/javascript" src="javascript/jquery.js"></script>
  #8 (permalink)  
Antiguo 09/05/2013, 12:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Respuesta: Incompatibilidad irresoluble???

Tienes razón en el planteamiento, ya que con el plug-in de las tab venían tres archivos js. Uno de ellos lo quité y ha seguido funcionando (ya pensé en esto que dices), pero los otros dos (por los que preguntas) son necesarios, ya que si eliminas cualquiera de ellos, el invento deja de funcionar.
  #9 (permalink)  
Antiguo 09/05/2013, 12:52
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 10 meses
Puntos: 23
Respuesta: Incompatibilidad irresoluble???

bueno mira lo normal es tener agregada la libreria jquery en su ultima version (una vez por supuesto) y de hay todos los plugins que ocupes.

Es muy raro que haya confilctos entre plugins hechos con la misma libreria, lo mas comun es que se haga conflicto al querer poner plugins de diferentes librerias como en mi caso que tengo un carrucel en prototype y un modal en jquery, pero plugins de misma libreria no habria porque haber conflicto.

En fin pues habra tener orden en los archivos y probar...a ver si a alguien se le ocurre otra cosa
  #10 (permalink)  
Antiguo 09/05/2013, 15:13
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 4 meses
Puntos: 8
Respuesta: Incompatibilidad irresoluble???

Sí, pero el problema es que no vienen con la misma librería.

Etiquetas: funcion, incompatibilidad, javascript, jquery, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:05.