Foros del Web » Programando para Internet » Jquery »

Problema con compatibilidad de los Jquery

Estas en el tema de Problema con compatibilidad de los Jquery en el foro de Jquery en Foros del Web. Buenas Tardes Amigos de FDW. Bueno resulta que tengo un menu con submenu que usa jquery y abajo del menu tengo un s3slider, el problema ...
  #1 (permalink)  
Antiguo 23/11/2009, 17:06
Avatar de GidHarvey  
Fecha de Ingreso: mayo-2009
Mensajes: 190
Antigüedad: 15 años
Puntos: 1
Exclamación Problema con compatibilidad de los Jquery

Buenas Tardes Amigos de FDW.
Bueno resulta que tengo un menu con submenu que usa jquery y abajo del menu tengo un s3slider, el problema es que el s3slider no se muestra y el submenu al momento de de pasar por el boton que aparece por encima del s3slider desaparece.

No se que es lo que puede estar ocurriendo, saque el jquery del submenu y hay funciono el slider, pero mi menu tiene que tener el submenu, entonces necesito encontrar cual seria el problema.

Si alguien me puede ayudar en esto porfavor.

Aqui pongo mi codigo.

Código HTML:
<title>home</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen"/>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/s3Slider.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('#slider1').s3Slider({
            timeOut: 4000 
        });
    });
</script>
</head>

<body id="home">
<div id="content">
  <div id="header">
     <div id="nav">
     <ul id="topnav">
    	<li><a href="home.html" class="home">Home</a></li>
        <li><a href="about.html" class="about">About</a></li>
        <li><a href="gallery.html" class="gallery">Gallery</a>
            <div class="sub">
            	<div class="row">
                    <ul style="width: 130px;">
                        <li><a href="#">Designs & Interfaces</a></li>
                        <li><a href="#">Digital Art</a></li>
                        <li><a href="#">Mixed Media</a></li>
                    </ul>
                </div>
            </div>
        </li>
		<li><a href="services.html" class="services">Services</a></li>
		<li><a href="shop.html" class="shop">Shop</a></li>
		<li><a href="contact.html" class="contact">Contact</a></li>
	</ul>
    </div>
  </div>
  <div id="sliderImage">
<div id="slider1">
    <ul id="slider1Content">
    		<li class="slider1Image">
                <img src="images/slider1.png" alt="1" /></a>
                <span class="right"><strong>Title text 2</strong><br />Content text...</span></li>
            <li class="slider1Image">
                <img src="images/slider1.png" alt="2" /></a>
                <span class="right"><strong>Title text 2</strong><br />Content text...</span></li>
            <li class="slider1Image">
                <img src="images/slider1.png" alt="3" /></a>
                <span class="right"><strong>Title text 2</strong><br />Content text...</span></li>
 			<li class="slider1Image">
                <img src="images/slider1.png" alt="4" /></a>
                <span class="right"><strong>Title text 2</strong><br />Content text...</span></li>
            <li class="slider1Image">
                <img src="images/slider1.png" alt="5" /></a>
                <span class="right"><strong>Title text 2</strong><br />Content text...</span></li>
            <div class="clear slider1Image"></div>
  </ul></div>
  </div>
</div>
<script type="text/javascript" src="js/jquery.min.js"></script>

<script type="text/javascript" src="js/jquery.hoverIntent.minified.js"></script>
<script type="text/javascript">
$(document).ready(function() {
	

	function megaHoverOver(){
		$(this).find(".sub").stop().fadeTo('fast', 1).show();
			
		//Calculate width of all ul's
		(function($) { 
			jQuery.fn.calcSubWidth = function() {
				rowWidth = 0;
				//Calculate row
				$(this).find("ul").each(function() {					
					rowWidth += $(this).width(); 
				});	
			};
		})(jQuery); 
		
		if ( $(this).find(".row").length > 0 ) { //If row exists...
			var biggestRow = 0;	
			//Calculate each row
			$(this).find(".row").each(function() {							   
				$(this).calcSubWidth();
				//Find biggest row
				if(rowWidth > biggestRow) {
					biggestRow = rowWidth;
				}
			});
			//Set width
			$(this).find(".sub").css({'width' :biggestRow});
			$(this).find(".row:last").css({'margin':'0'});
			
		} else { //If row does not exist...
			
			$(this).calcSubWidth();
			//Set Width
			$(this).find(".sub").css({'width' : rowWidth});
			
		}
	}
	
	function megaHoverOut(){ 
	  $(this).find(".sub").stop().fadeTo('fast', 0, function() {
		  $(this).hide(); 
	  });
	}


	var config = {    
		 sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)    
		 interval: 10, // number = milliseconds for onMouseOver polling interval    
		 over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
		 timeout: 50, // number = milliseconds delay before onMouseOut    
		 out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
	};

	$("ul#topnav li .sub").css({'opacity':'0'});
	$("ul#topnav li").hoverIntent(config);



});



</script> 

Codigo CSS:

Código:
#content {
	height: 850px;
	width: 980px;
	margin-right: auto;
	margin-left: auto;
}
#header {
	width: 980px;
	height: 40px;
	background-color: #000;
}
#nav {
	float: left;
	height: 40px;
	width: 486px;
}
ul#topnav {
	margin: 0; padding: 0;
	float:left;
	width: 100%;
	list-style: none;
	font-size: 1.1em;
}
ul#topnav li {
	float: left;
	margin: 0; padding: 0;
	position: relative; /*--Important--*/
}
ul#topnav li a {
	float: left;
	text-indent: -9999px; /*--Push text off of page--*/
	height: 40px;
}


/*submenu */
ul#topnav li .sub {
	position: absolute; /*--Important--*/
	top: 41px;
	left: 0;
	float: left;
	/*--Bottom right rounded corner--*/
	-moz-border-radius-bottomright: 5px;
	-khtml-border-radius-bottomright: 5px;
	-webkit-border-bottom-right-radius: 5px;
	/*--Bottom left rounded corner--*/
	-moz-border-radius-bottomleft: 5px;
	-khtml-border-radius-bottomleft: 5px;
	-webkit-border-bottom-left-radius: 5px;
	display: none; /*--Hidden for those with js turned off--*/
	background-color: #000;
	background-image: url(sub_bg.png);
	background-repeat: repeat-x;
}
ul#topnav .sub ul li a {
	background-color: #000;
}
ul#topnav .sub ul li a:hover {
	background-color: #666;
}
ul#topnav li .row { /*--If needed to break out into rows--*/
	clear: both;
	float: left;
	width: 100%;
	margin-bottom: 10px;
}
ul#topnav li .sub ul{
	list-style: none;
	margin: 0;
	padding: 0;
	width: 130px;
	float: left;
}
ul#topnav .sub ul li {
	width: 100%; /*--Override parent list item--*/
	color: #fff;
	font-size: 12px;
	font-weight: bold;
	text-decoration: none;
	font-style: normal;
	font-family: Arial, Helvetica, sans-serif;
}
ul#topnav .sub ul li a {
	float: none;
	text-indent: 0; /*--Override text-indent from parent list item--*/
	height: auto;
	display: block;
	text-decoration: none;
	color: #03AED9;
	font-size: 12px;
	font-weight: bold;
	font-style: normal;
	font-family: Arial, Helvetica, sans-serif;
	padding-bottom: 7px;
	padding-left: 6px;
	padding-top: 7px;
}
ul#topnav .sub ul li a:hover {
	color: #000;
	background-position: 5px 12px;/*--Override background position--*/
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-style: normal;
	font-weight: bold;
	text-decoration: none;
}

/* nav */
ul#topnav {
	margin: 0;
	padding: 0;
	list-style: none;
	float: left;
}
ul#topnav li {
	float: left;
	margin: 0; padding: 0;
}

/*--CSS Sprites - Default State--*/
ul#topnav a {
	display: block;
	height: 40px; /*--Specify height of navigation--*/
	text-indent: -99999px; /*--Shoot the text off the page--*/
	background-position: left top;
	float: left;
}
/*--CSS Sprites - Hover State--*/
ul#topnav a:hover {
	background-position: left bottom;
}
/*--Assign an image and width to each link--*/
ul#topnav li a.home {
	background-image: url(images/nav_home.png);
	width: 68px;
}
ul#topnav li a.about {
	background-image: url(images/nav_about.png);
	width: 86px;
}
ul#topnav li a.gallery {
	background-image: url(images/nav_gallery.png);
	width: 93px;
}
ul#topnav li a.services {
	background-image: url(images/nav_services.png);
	width: 101px;
}
ul#topnav li a.shop {
	background-image: url(images/nav_shop.png);
	width: 69px;
}
ul#topnav li a.contact {
	background-image: url(images/nav_contact.png);
	width: 69px;
}
/*-- actives pages --*/
#home li a.home {
background-position: left 40px;
}
#about li a.about{
background-position: left 40px;
}
#gallery li a.gallery {
background-position: left 40px;
}
#services li a.services {
background-position: left 40px;
}
#shop li a.shop{
background-position: left 40px;
}
#contact li a.contact{
background-position: left 40px;
}
#sliderImage {
	float: left;
	height: 232px;
	width: 609px;
	padding-top: 20px;
	padding-left: 24px;
}
#slider1 {
	width: 609px;
	height: 232px;
	position: relative;
	overflow: hidden;
	float: left;
}
#slider1Content {
	margin:0;
	padding:0;
	width:609px;
}
.slider1Image { float: left; position: relative; display: none;}
.slider1Image span {
    position: absolute;
	font: 10px/15px Arial, Helvetica, sans-serif;
    padding: 10px 13px;
    width: 694px;
    background-color: #000;
    filter: alpha(opacity=70);
    -moz-opacity: 0.7;
	-khtml-opacity: 0.7;
    opacity: 0.7;
    color: #fff;
    display: none;}
.clear { clear: both;}
.slider1Image span strong { font-size: 14px;}
.left { top: 0; left: 0; width: 110px !important; height: 280px;}
.right {
	right: 0;
	bottom: 0;
	width: 582px !important;
	height: 45px;
}
ul { list-style-type: none;}
a:link { text-decoration: none;}
a:visited { text-decoration: none;}
a:hover { text-decoration: none;}
a:active { text-decoration: none;}

El submenu aparece en la parte de gallery, y se supone que abajo esta el s3slider pero no se ve pero esta activo, por que cuando se abre el submenu y se pasa el mouse por donde esta el s3slider desaparece.

PRUEBA AQUI

Porfavor alguien que me ayude.

Un saludo ATTe Gidharvey
__________________
La mayoría prefiere pagar por entretenerse que por instruirse.
  #2 (permalink)  
Antiguo 23/11/2009, 20:01
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema con compatibilidad de los Jquery

Probaste con un menu basado en CSS?

http://www.cssmenumaker.com/
http://www.forosdelweb.com/f53/faqs-...ml#post2443905

Dicho sea de paso, yo tengo un problema terrible con los menues e IE7. Pero no se si es tu caso.

Usando opera no veo nada mas que un menu funcionando ok, te cuento.
  #3 (permalink)  
Antiguo 23/11/2009, 20:40
Avatar de GidHarvey  
Fecha de Ingreso: mayo-2009
Mensajes: 190
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con compatibilidad de los Jquery

no, no lo eh probado, pero me gustaria saber como solucionar esto para aprender mas, un saludo y muchas gracias por la ayuda, de todas formas me interesaron algunos menu CSS de el link que me enviaste.

Un saludo

ATTe Gidharvey
__________________
La mayoría prefiere pagar por entretenerse que por instruirse.
  #4 (permalink)  
Antiguo 24/11/2009, 07:52
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema con compatibilidad de los Jquery

Estoy viendo el codigo fuente de tu pagina y tenes dos llamadas a dom ready:

Cita:
$(document).ready(function() {
Esto puede estar causando problemas. Usa uno solo, y en lo posible en headers.

Tenes claro el uso? Esto hace que lo que haya ahi , en esa seccion , no se ejecute a la primera leida lineal de el html. Recien va a dispararse cuando todas las etiquetas html hayan sido interpretadas (lo cual no implica que los contenidos se muestren ya en pantalla, porque cosas como video, flash y fotos tardan un poquito en cargarse).


Otra cosa. Tenes dos veces incluido el jquery!

Una vez en el header:
Cita:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/s3Slider.js"></script>
Y otra en el body, que me parece mala idea:

Cita:
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.hoverIntent.minified.js"></script>
Esto de por si es mala cosa, y lo seria aun mas si las versiones de los jquery fueran diferentes. Muy muy mala cosa.
  #5 (permalink)  
Antiguo 24/11/2009, 08:20
Avatar de GidHarvey  
Fecha de Ingreso: mayo-2009
Mensajes: 190
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con compatibilidad de los Jquery

Hola mayid

Muchas gracias por tu respuesta.

Mira no entiendo mucho, pero lo de los jquery, el que que sale en el header es del s3slider

y el que sale en el body es del menu es decir para que aparesca el submenu.

Pero hay una cosa que no entiendo. es necesario que tenga dos Jquery? o solo puedo dejar el del header y funcionara tbm con el mismo el submenu?


Lo otro que no entendi es esto

Cita:
Estoy viendo el codigo fuente de tu pagina y tenes dos llamadas a dom ready:

Cita:
$(document).ready(function() {
Esto puede estar causando problemas. Usa uno solo, y en lo posible en headers.

Tenes claro el uso? Esto hace que lo que haya ahi , en esa seccion , no se ejecute a la primera leida lineal de el html. Recien va a dispararse cuando todas las etiquetas html hayan sido interpretadas (lo cual no implica que los contenidos se muestren ya en pantalla, porque cosas como video, flash y fotos tardan un poquito en cargarse).
Es posible que me digas como tendria que arreglar esto para que me funcione, ya que de esto no entiendo mucho.

Un saludo mayid y muchas gracias por tus repuestas.
__________________
La mayoría prefiere pagar por entretenerse que por instruirse.
  #6 (permalink)  
Antiguo 24/11/2009, 09:24
Avatar de GidHarvey  
Fecha de Ingreso: mayo-2009
Mensajes: 190
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con compatibilidad de los Jquery

Hice las 2 cosas que me dijiste y ninguna dio resultado, cual podria ser el problema?

alguna pista alguien?


Edito**


Ahora si funciona, pero se ve el submenu abajo del s3slider, como puedo solucionar esto.

aqui esta funcionando:

http://kopfmackloss.com/
__________________
La mayoría prefiere pagar por entretenerse que por instruirse.

Última edición por GidHarvey; 24/11/2009 a las 09:30
  #7 (permalink)  
Antiguo 24/11/2009, 09:43
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema con compatibilidad de los Jquery

Que bueno que lo solucionaras. Tene en cuenta no repetir las cosas que te señale: la llamada a jquery (el framework en si) y el document.ready.

Cita:
Pero hay una cosa que no entiendo. es necesario que tenga dos Jquery? o solo puedOtra cosa.
Cita:
Tenes dos veces incluido el jquery!

Una vez en el header:
Cita:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/s3Slider.js"></script>
Y otra en el body, que me parece mala idea:

Cita:
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.hoverIntent.minified.js"></script>
Esto de por si es mala cosa, y lo seria aun mas si las versiones de los jquery fueran diferentes. Muy muy mala cosa.o dejar el del header y funcionara tbm con el mismo el submenu?
Tenes que tener una sola vez el framework, y en el header. Antes de todo aquello que use el codigo jquery (antes de todo lo que use este tipo de sintaxis: $("... ") )
  #8 (permalink)  
Antiguo 24/11/2009, 09:45
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema con compatibilidad de los Jquery

Tu problema de capas se soluciona con z-index. Es un problema para CSS.

Toma el div que tiene el menu, y ponele position: relative; z-index:1000
  #9 (permalink)  
Antiguo 24/11/2009, 09:52
Avatar de GidHarvey  
Fecha de Ingreso: mayo-2009
Mensajes: 190
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con compatibilidad de los Jquery

Muchas gracias mayid, problema solucionado, con todas las respuesta que me diste, un saludo.
__________________
La mayoría prefiere pagar por entretenerse que por instruirse.
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 11:41.