首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的JavaScript不能在JSFiddle中工作?

为什么我的JavaScript不能在JSFiddle中工作?
EN

Stack Overflow用户
提问于 2011-03-25 18:41:53
回答 6查看 52.4K关注 0票数 114

我找不到这个JSFiddle有什么问题。

HTML:

代码语言:javascript
复制
<input type="button" value="test" onclick="test()">

JavaScript:

代码语言:javascript
复制
function test(){alert("test");}

当我点击按钮时,什么也没有发生。控制台显示“测试未定义”

我读过JSFiddle文档-那里说JS代码被添加到<head>中,HTML代码被添加到<body>中(所以这段JS代码比HTML更早,应该可以工作)。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-03-25 18:50:29

该函数在加载处理程序中定义,因此位于不同的作用域中。正如@ellisbben在注释中指出的那样,您可以通过在window对象上显式定义它来修复此问题。更好的是,将其更改为以不引人注目的方式将处理程序应用于对象:http://jsfiddle.net/pUeue/

代码语言:javascript
复制
$('input[type=button]').click( function() {
   alert("test");   
});

注以这种方式应用处理程序,而不是内联,可以保持HTML的整洁。我使用的是jQuery,但如果您愿意,您可以使用或不使用框架,也可以使用不同的框架。

票数 60
EN

Stack Overflow用户

发布于 2011-04-29 17:36:44

如果不指定换行设置,则默认为"onLoad“。这会导致所有JavaScript都被包装在加载result后运行的函数中。所有变量都是该函数的局部变量,因此在全局范围内不可用。

将换行设置更改为“无换行”,它将起作用:

http://jsfiddle.net/zalun/Yazpj/1/

我将框架切换为"No Library“,因为您没有使用任何库。

票数 100
EN

Stack Overflow用户

发布于 2014-08-10 22:59:56

将框架和扩展面板中的包装设置更改为"No wrap-in <body>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5431351

复制
相关文章

相似问题

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