我正在尝试创建一个更新验证码图像的脚本,通过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
答案 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);
});