jquery .live()多次单击

时间:2010-06-01 09:22:02

标签: jquery

我正在尝试创建一个更新验证码图像的脚本,通过live()函数加载...它可以工作,但它只在firefox上更新图像1次,在safari上2次更新...怎么能我让它多次工作?

jquery 1.4.2

代码的相关部分:

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

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

感谢, BRM

3 个答案:

答案 0 :(得分:6)

这取决于您的实现,但您在所有请求上重复使用相同的随机值。你可能想要:

var rand;

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

那样rand会不断变化,但你会看到它的最新价值。

答案 1 :(得分:2)

移动

var rand = Math.random();

内部函数();

答案 2 :(得分:0)

想通了,第二次提交必须是分开的......

/* 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);
    });