首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的事件处理程序会导致“不是函数”错误,而是在Firebug控制台中工作?

为什么我的事件处理程序会导致“不是函数”错误,而是在Firebug控制台中工作?
EN

Stack Overflow用户
提问于 2009-02-10 19:32:47
回答 2查看 14.5K关注 0票数 5

使用JQuery 1.2.6,从Firefox3和IE7进行测试。我有一个非常基本的JavaScript来重新加载验证码图像。在我的JS文件中,我有:

代码语言:javascript
运行
复制
var Captcha = {
    count: 0,

    Refresh: function(){
        // Concatenate "count" to force a URL change, which forces the browser to reload the image
        $('#Captcha').attr('src', 'Captcha.aspx?' + Captcha.count);
        Captcha.count++;
    }
}

我的链接如下所示:

代码语言:javascript
运行
复制
<a href="javascript:void(0);" id="ChangeCaptcha" onclick="Captcha.Refresh();">Try a different image</a>

当我点击该链接时,我得到一个JavaScript错误。在Firefox的Firebug插件中,它说"Captcha.Refresh“不是一个函数。因此,我转到同一窗口中的Firebug控制台,输入

代码语言:javascript
运行
复制
Captcha

我在响应行中得到了一个“对象”(正如所期望的)。然后我输入

代码语言:javascript
运行
复制
Captcah.Refresh

我在响应行中得到了一个函数()(不出所料)。然后我输入

代码语言:javascript
运行
复制
Captcha.Refresh()

然后它执行函数,更新我的验证码图像,一切都很棒。如果我返回并再次尝试链接,它仍然不起作用。如果我在控制台中输入Capcha.Refresh()而不点击链接,它也可以正常工作。我到底错过了什么?显然,JS正在加载,但为什么该函数调用不起作用?

EN

Stack Overflow用户

发布于 2009-02-10 19:37:18

尝试将HTML和javascript分开:

代码语言:javascript
运行
复制
$('#ChangeCaptcha').click(Captcha.Refresh);
票数 7
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/533817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档