Wrong id al intentar ejecutar funcion por ajax jquery

  • Autor Autor Juanjo87
  • Fecha de inicio Fecha de inicio
J

Juanjo87

Gamma
Diseñador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de 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í:

Insertar CODE, HTML o 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 edición:
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 edición:
Atrás
Arriba