Wrong id ao tentar executar função por ajax jquery

  • Autor Autor Juanjo87
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
J

Juanjo87

Gamma
Diseñador
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
buenas, pues estoy intentando crear una función para que al apretar un botón "siguiente",automáticamente se ejecute la función del div siguiente y se aprieto otro botón "atrás" se me cargue la función del div anterior.

Actualmente paso bien de un div a otro con los botones siguiente y atrás, por ejemplo.

Tengo una galería de 10 imágenes en horizontal, que al cargar la pagina se establece la primera como marcada cor un borde blanco, si aprieto el botón siguiente, este borde blanco pasa a la segunda imagen, si pulso atrás, vuelve a la imagen anterior, hasta aquí todo ok. El problema viene cuando intento cargar la función que dicha imagen tiene asignada a un atributo onclick que me llama a la función jquery.

Todas las imágenes están dentro de una etiqueta < a> </ a> así:

Inserir CODE, HTML ou PHP:
 <a  id="<?php echo $post->ID;?>" href="tooltip-ajax" onclick="showFicha_tooltip('<?php echo $post->ID;?>','tooltip_ajax','tooltip-ajax'); return false;">

y al presionar en la imagen la función carga perfectamente.

Entonces, ¿por que cuando intento activar la función con los botones, siguiente, anterior, me tira el error Wrong id?

Este es el código con el que estoy teniendo problemas

PHP:
$(document).ready(function() {
    var divs = $('#carousel-accion>li a');
    var now = 0; // currently shown div
    divs.css("border", "0").first().css("border", "solid 1px white"); // hide all divs except first
	
	
	
    $("button[name=next]").click(function() {
        divs.eq(now).css("border", "0");
        now = (now + 1 < divs.length) ? now + 1 : 0;
        divs.eq(now).ready(
function showFicha_tooltip(id){
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";

    $(".modal_trailer").fadeIn(500);

	$(".trailer").fadeIn(500) .html("<div id='load-ajax'>loading...</div>");		


	jQuery.post(
		ajaxurl,
		{
		    'action': 'tooltip_ajax',
		    'post_id':   id
		}, 
		
	    function(response){

			    $(".trailer").fadeIn(2500).html(response);

	
	    }
	);
}
);
    });
	
	
	
	
	
    $("button[name=prev]").click(function() {
        divs.eq(now).css("border", "0");
        now = (now > 0) ? now - 1 : divs.length - 1;
        divs.eq(now).ready(
function showFicha_tooltip(id){
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";

    $(".modal_trailer").fadeIn(500);

	$(".trailer").fadeIn(500) .html("<div id='load-ajax'>loading...</div>");		


	jQuery.post(
		ajaxurl,
		{
		    'action': 'tooltip_ajax',
		    'post_id':   id
		}, 
		
	    function(response){

			    $(".trailer").fadeIn(2500).html(response);

	
	    }
	);
}
);
    });
});


Exactamente el error viene cuando llamo a la función response

PHP:
 function(response){

			    $(".trailer").fadeIn(2500).html(response);

	
	    }

todo lo anterior funciona bien.

Donde esta el fallo?

- - - Actualizado - - -

seguramente este aqui el fallo

PHP:
jQuery.post( 
        ajaxurl, 
        { 
            'action': 'tooltip_ajax', 
            'post_id':   id 
        },

- - - Actualizado - - -

lo he solucionado así

PHP:
$(document).ready(function() {
    var divs = $('#carousel-accion>li a');
    var now = 0; // currently shown div
    divs.css("border", "0").first().css("border", "solid 1px white"); // hide all divs except first
	
	
	
	
	
	
    $("button[name=next]").click(function() {
        divs.eq(now).css("border", "0");
		
        now = (now + 1 < divs.length) ? now + 1 : 0;
		
   
	  
	  
	   divs.eq(now).click();
	   
	   

    });
	
	
	
	
	
    $("button[name=prev]").click(function() {
        divs.eq(now).css("border", "0");
        now = (now > 0) ? now - 1 : divs.length - 1;
        divs.eq(now).click();
    });
});
 
Última edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Me alegro que consiguieras la solución, para estos problemas que tienes tendrías que instalarte el complemento firebug o similares, es imprescindible cuando sabes usarlo, ayudan mucho con los problemas de JS.
 
Última edição:
Voltar
Topo