javascript onclick在jsfiddle中不起作用

问题描述 投票:15回答:5

我正在尝试制作jsfiddle,我的onclick在jsfiddle中不起作用。我的代码有什么问题

<input value="press" type="button" onclick="myclick()">


function myclick(){
   alert("myclick")
}

http://jsfiddle.net/hiteshbhilai2010/gs6rehnx/11/

编辑

我尝试了No wrap - In head,然后再次尝试了document.ready,它再次在jsfiddle中不起作用

ERROR - Uncaught ReferenceError: myclick is not defined 

http://jsfiddle.net/hiteshbhilai2010/33wLs160/6/

我已经检查了已经存在的问题here,但是当我在jsfiddle中尝试时,我的问题正在发生

有人可以帮我....谢谢

javascript html onclick jsfiddle
5个回答
12
投票

您需要选择没有库(纯JS)没有包裹头。然后它将作为带有JavaScript页面的简单HTML。

将其插入到<script><head>元素中:

function myclick(){
  alert("myclick")
}

请参见demo


4
投票

正如其他人所说,对于第一种情况,您必须将No wrap - in <head>No wrap - in <body>设置为javascript面板设置(js面板右上方的蓝色链接)。

对于第二个(您的Edit)问题,您的函数内的代码和js将在新上下文中运行它,但是它什么都不做,因为您只定义一个函数就可以了,而无需任何调用或分配就可以忽略它。

如果您调用alert(myclick),您将看到所有代码已执行并在此时定义了代码。 see this fiddle

$(document).ready(function() {

  //alert("ready is executed");

  function myclick(){
    alert("myclick is called")
    window.location.reload(true);
  }

  alert(myclick); //this will show the myclick is a defined function!

  //document.getElementsByTagName("input")[0].onclick = myclick;
})

如果您拨打此电话:

document.getElementsByTagName("input")[0].onclick = myclick;

在该$(document).ready({...})范围内,它将被分配给该按钮并按您希望的方式工作。


0
投票
<input value="press" id='a' type="button">
document.getElementById('a').onclick = function() { alert(1); }

http://jsfiddle.net/gs6rehnx/12/


0
投票

这个正在工作。只需将其从文档就绪事件中删除即可。分号在javascript中也是可选的,但我建议使用它们。

function myclick() {
    alert("myclick");
    window.location.reload(true);
}
<input value="press" type="button" onclick="myclick();">
<script>
    alert("home");
</script>

这里是fiddle


0
投票

在脚本面板的“加载类型”中选择“无环绕-底部”。这是Jsfiddle的解决方案(到2019年12月17日)。

Image

© www.soinside.com 2019 - 2024. All rights reserved.