Foros del Web » Programando para Internet » Jquery »

Bucle en .load de jquery

Estas en el tema de Bucle en .load de jquery en el foro de Jquery en Foros del Web. Hola a todos, tengo el siguiente problema. Hago una llamada a ajax mediante la función load de jquery. En Firefox y Chrome va correctamente, pero ...
  #1 (permalink)  
Antiguo 13/11/2012, 09:03
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Bucle en .load de jquery

Hola a todos, tengo el siguiente problema.

Hago una llamada a ajax mediante la función load de jquery. En Firefox y Chrome va correctamente, pero en IE (como no..) me hace un bucle, de forma, que cuando hago click en el enlace que lanza la funcion, me suma la llamada de la función, tantas veces como clicks se han realizado.

La funcion en concreto que se repite es la hash. Pego el código a ver si alguien me detecta el problema.

Código:
function lanz() {
	var postop = screenheight - 809;
	var posleft = screenwidth / 2 - 500;
	var poscont = screenheight - 85;
	var center2 = poscont - 4;
	var logow = posleft + 752;
	$("#BackGround").css("top",postop + "px");
	$("#BackGround").css("top",postop + "px");
	$("#cube1").css("left",posleft + "px");
	$("#cube2").css("left",posleft + "px");
	$("#cube2").css("height",poscont + "px");
	$("#m-center2").css("height",center2 + "px");
	$("#logo").css("left",logow + "px");
}
$(document).ready(function() {
	screenwidth = $(window).attr('screen').width;
	screenheight = $(window).attr('screen').height;
	// Para navegadores que soportan la función.
	if (typeof window.history.pushState == 'function') {
		pushstate();            
	}else{
		check(); hash();
	}
});

function pushstate(){
	var links = $("a");
	// Evento al hacer click.
	links.live('click', function(event) {
		var url = $(this).attr('href');
		// Cambio el historial del navegador.
		history.pushState({ path: url }, url, url);
		// Muestro la nueva url
		$("#m-center").load(url+"&int=1");
	});
	
	// Función para determinar cuando cambia la url de la página.
	$(window).bind('popstate', function(event) {
		var state = event.originalEvent.state;
	});
}


// Chequear si existe el hash.
function check(){
	var direccion = ""+window.location+"";
	var nombre = direccion.split("#!");
	if(nombre.length > 1){
		var url = nombre[1]; 
	}
}
function hash(){
	// Para i.e
	// Función para determinar cuando cambia el hash de la página.
	$(window).bind("hashchange",function(){
		var hash = ""+window.location.hash+"";
		hash = hash.replace("#!","")
		if(hash && hash != ""){
			$("#m-center").load(hash+"&int=1");
		}
	}); 
	// Evento al hacer click.
	$("a").bind('click', function(e) {
		var url = $(this).attr('href');
		e.preventDefault();
		// Cambio el historial del navegador.
		window.location.hash = "#!"+url;
		alert("Funcion lanzada en IE");	
		$("#m-center").load(url+"&int=1");
	});
}
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Etiquetas: ajax, bucle, funcion, load
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 17:04.