jquery: enlazar onclick

    $(document).ready(function() {    
    $('a#fav').bind('click', addFav(<?php echo $showUP["uID"]; ?>));
});

fue antes de

    $(document).ready(function() {    
    $('a#fav').bind('click', addFav);
});

He añadido (<?php echo $showUP["uID"]; ?>) porque quiero que los perfiles de usuario, id a trabajar en la addFav llamada ajax.

Así que tengo esta en la parte inferior de mi página y ahora incluso si i havnt clic en la a#fav corre? Pero no se ejecute cuando no tengo el (id)

Heres addFav en el caso de:

function addFav(id){
    $.ajax({
      url: "misc/favAdd.php",
      data: { id: id},
      success: function(){
           $('a#fav')
                 .addClass('active')
                 .attr('title','[-] Remove as favorite')
                 .unbind('click')
                 .bind('click', removeFav(id))
           ;
                jGrowlTheme('wallPop', 'mono', '[+] Favorit', 'Du har nu lagt till denna profil som favorit', 'images/addFavorit_hover2.png', 1000);
      }
    });
}

function removeFav(id){
    $.ajax({
      url: "misc/favRemove.php",
      data: { id: id },
      success: function(){
            $('a#fav')
                 .removeClass('active')
                 .attr('title','[+] Add as favorite')
                 .unbind('click')
                 .bind('click', addFav(id))
            ;
                            jGrowlTheme('wallPop', 'mono', '[-] Favorit', 'Du har nu tagit bort denna profil som favorit', 'images/addFavorit_hover2.png', 1000);
      }
    });
}
InformationsquelleAutor Karem | 2010-09-05

2 Kommentare

  1. 6

    El segundo parámetro a la bind función es una función en sí misma. Cuando se pasa una función como parámetro, sólo debe suministrar el nombre de la función, no de la apertura/cierre de paréntesis o argumentos.

    En su caso, si quieres pasar parámetros a la addFav función, puede hacerlo por el paso de una función anónima para bind, y dentro del cuerpo de la función, llamada addFav como lo haría normalmente con sus parámetros. Como este:

    $(document).ready(function() {    
        $('a#fav').bind('click', function() {
            addFav(<?php echo $showUP["uID"]; ?>);
        });
    });
  2. 4

    Necesita un anoymous función como esta onload:

    $(function() {    
      $('a#fav').click(function(
        addFav(<?php echo $showUP["uID"]; ?>)
      });
    });

    Y este estilo en su success las devoluciones de llamada:

    $('#fav').click(function() {
      addFav(id);
    });

    desde #fav debe ser un IDENTIFICADOR único, es una forma mucho más rápida selector.


    O, lo pasamos como argumento de datos para .bind(), como este:

    $('a#fav').bind('click', { id: id }, addFav);

    Y en su función de acceder a ella de esa manera en lugar de como un parámetro, como este:

    function addFav(e){
      var id = e.data.id;

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea