Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用按钮上的onclick属性调用javascript函数_Javascript_Html_Onclick - Fatal编程技术网

使用按钮上的onclick属性调用javascript函数

使用按钮上的onclick属性调用javascript函数,javascript,html,onclick,Javascript,Html,Onclick,我不明白他为什么不工作。 我坚持参考上面的参考资料。 代码如下: HTML: 它不起作用,因为您已经将JSFIDLE配置为将JavaScript封装在函数中并调用它onload。这将使函数不再是全局函数,因此它不在内部事件处理程序属性的作用域中 此外,在修复该问题后,内在事件属性的奇怪作用域规则(我不知道这些属性记录在何处)意味着click在搜索范围足够远以找到全局click函数之前,将解析为按钮的click属性 快速而肮脏的解决方案是: 将函数重命名为与现有属性名不冲突的名称 从JSFIDL

我不明白他为什么不工作。 我坚持参考上面的参考资料。 代码如下:

HTML:


它不起作用,因为您已经将JSFIDLE配置为将JavaScript封装在函数中并调用它
onload
。这将使函数不再是全局函数,因此它不在内部事件处理程序属性的作用域中

此外,在修复该问题后,内在事件属性的奇怪作用域规则(我不知道这些属性记录在何处)意味着
click
在搜索范围足够远以找到全局
click
函数之前,将解析为按钮的
click
属性

快速而肮脏的解决方案是:

  • 将函数重命名为与现有属性名不冲突的名称
  • 从JSFIDLE左侧的菜单中选择一个不换行选项

正确的解决方案是使用JavaScript附加事件处理程序。这不是20世纪90年代,我们应该避免使用那个时代的技术,因为这些技术无法分离关注点。将JS放在一个地方,HTML放在另一个地方

<button>Test</button> 

<script>
document.querySelector('button').addEventListener('click', click);
function click(evt) {
    alert("Hello !");
}
</script>
测试
document.querySelector('button')。addEventListener('click',click');
功能点击(evt){
警惕(“你好!”);
}

我想您不能在单击时给出函数名。更改函数名&它应该可以工作。

此代码不起作用,因为已经存在一个
click
本机方法,并且对其进行阴影处理会阻止正常的click事件处理。给它另一个名字,它就会工作

一种方法是将按钮定义为

<button onclick="console.log(click)">Test</button>
测试

单击
似乎已被保留。 尝试重命名该方法:


您需要更改函数名。”click'可能是一个保留关键字,因此当您调用它时,它无法识别。将其重命名为其他名称,例如“democlick()”。另外,不要忘记用“.html”保存代码。扩大请告诉我是否存在任何问题。谢谢。

W3Schools是一个垃圾教程网站,它根本不属于W3C。我讨厌看到w3school链接粘贴一个常见的句子:“w3school…”而不继续阅读答案的人@艾哈迈德-这是一个问题,不是答案,我读了所有的内容。(现在我已经编辑了这个问题,以消除内容中有问题的错误归属)@Quentin,那么W3C学校的问题在哪里呢?@Ahmad-他们不是问题所说的W3C。
无包装
我第一次看到这个选项。。伟大的
<button>Test</button> 

<script>
document.querySelector('button').addEventListener('click', click);
function click(evt) {
    alert("Hello !");
}
</script>
<button onclick="console.log(click)">Test</button>
function clickMe() {
    alert("Hello !");
}