为什么不调用javascript onclick函数?

Jér*_*nge 0 javascript alert onclick

我创建了一个JSFiddle来描述这个问题.我调用该doSomething()功能时为什么不显示警报?

Shi*_*dim 5

这是因为doSomething()HTML页面中未定义函数.在jsfiddle中,您的函数(在js窗格中)由jquery的document onload事件包装.(请参阅jsfiddle左侧的设置).所以它像这样执行,

$(document).ready(function() {
    function doSomething() {
      alert('Hello!'); 
    }
});
Run Code Online (Sandbox Code Playgroud)

看看它是如何包裹的.它无法访问.要修复它,您应该将其分配给window对象.在js窗格中将函数写为

window.doSomething=function() {
  alert('Hello!'); 
}
Run Code Online (Sandbox Code Playgroud)

它会工作的


建议您不要使用onclickHTML元素的属性.最好用JS分配事件处理程序.

$("img").click(function(){
  alert("Hello");
});
Run Code Online (Sandbox Code Playgroud)


Sib*_*ibu 5

您需要在jsfiddle中禁用框架选项,JavaScript才能正常工作

演示

function doSomething() {
  alert('Hello!'); 
}
Run Code Online (Sandbox Code Playgroud)