img src在Firefox和IE中的jQuery脚本中没有改变

时间:2016-04-22 09:48:06

标签: javascript jquery spring-mvc

我有img

 <img src="captcha.jpg" id="my-image"/>

用于更改验证码图像的jQuery脚本

<script>
    $(document).ready($("#my-image").click(function(){
        $('#my-image').attr('src', "captcha.jpg");
                        alert('adfgf');
    }));
</script>

当我点击图像触发图像更改并在Chrome中调用警报时。但是在Firefox和IE中警报被调用但图像没有改变。如何解决?

编辑

@RequestMapping(value = "/captcha.jpg", method = RequestMethod.GET)
    public void captcha(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.captcha(req, resp);
    }

1 个答案:

答案 0 :(得分:2)

您使用ready handler发出错误,需要将其传递给函数。

这是你应该做的事情:

$(document).ready(function() {
    $("#my-image").click(function(){
        $('#my-image').attr('src', "captcha.jpg");
        alert('adfgf');
    });
});

编辑:我添加了一个示例代码段,向您展示它是否有效。

$(document).ready(function() {
    $("#my-image").click(function(){
        $('#my-image').attr('src', "//placehold.it/100x100");
        alert('adfgf');
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="//placehold.it/50x50" id="my-image"/>

编辑n°2:如果您只想重新加载/刷新图片,可以使用:

$('#my-image').attr('src', "captcha.jpg" + Math.random())

(Source)