2010-06-01 8 views
2

J'essaye de faire un script qui met à jour l'image captcha, qui est chargé par la fonction live() ... Cela fonctionne, mais il ne met à jour l'image 1 fois sur firefox, 2 fois sur safari ... Comment puis-je faire cela pour travailler plusieurs fois?jquery .live() cliquez plusieurs fois

jquery 1.4.2

partie pertinente du code:

/* captcha image change */ 
var rand = Math.random(); 

$('a.captcha_refresh').live('click', function() { 
    $('img.captcha').attr("src", 'captchashow.php?sid=' + rand); 
}); 

grâce, BRM

+0

comme une note de côté, vous pouvez utiliser 'délégué()' 'au lieu de vivre()'. Est un peu plus rapide. –

Répondre

6

Cela dépend de votre mise en œuvre, mais vous réutilisez la même valeur aléatoire sur toute demande. Vous voudrez peut-être:

var rand; 

$('a.captcha_refresh').live('click', function() { 
    rand = Math.random(); //new value 
    $('img.captcha').attr("src", 'captchashow.php?sid=' + rand); 
}); 

De cette façon rand ne cesse de changer, mais vous voyez sa dernière valeur.

2

mouvement

var rand = Math.random(); 

à l'intérieur de la fonction();

0

figured it out, le second soumettre doivent être séparés ...

/* change client IPv4 address */ 
$('input.submit').live('click', function() { 
    /* get current ip value */ 
    var ipv4 = $('td.user_ipv4').html(); 

    /* change submit button value and class */ 
    $('td.changeipv4').html('<input type="button" class="submit_ipv4" value="Spremeni">'); 

    /* user input */ 
    $('td.user_ipv4').html('<input type="text" size="15" maxlength="15" value="' + ipv4 + '">'); 

}); 
    /* change IP! */ 
    $('input.submit_ipv4').live('click', function() { 
     /* get submitted IP address value */ 
     var ipv4 = $('td.user_ipv4 input').val(); 

     $.post('change_ipv4.php', { ipv4: ipv4 } , function(data) { 
      $('td.changeipv4_result').html(data); 
     }); 

     /* back to old change button */ 
     $('td.changeipv4').html('<input type="button" class="submit" value="Uredi">'); 
      /* print IP address */ 
      $('td.user_ipv4').html(ipv4); 
    });