我一直在努力尝试按下按钮点击事件,以便在点击特定按钮后JavaScript代码触发某些事件。
当我尝试在我的项目中执行点击触发器时没有问题,但我似乎无法使用JSFiddle来使其工作。
我首先按照这里的提示:JavaScript not running on jsfiddle.net
具体来说,meder omuraliev写的部分,"所以而不是
<p onclick="lol()" id="foo">
你做
var e = document.getElementById('foo');
e.onclick = lol;
仅限JS。&#34;
我试图遵循这条指令,这可以在我在这里做的简单例子中看到(它不起作用):https://jsfiddle.net/b7yj3cph/3/
var e = document.getElementById('test');
e.onclick = example;
var example = function( {
alert("hello");
});
&#13;
<button id='test' type="button" onclick="example()">
<div>
Hello
</div>
&#13;
我尝试了其他来源和方法,但无法使用。我尝试了W3Schools(https://jsfiddle.net/b7yj3cph/)的一个例子,尝试了一些JSFiddles来搜索&#34; jsfiddle按钮onclick&#34; (https://jsfiddle.net/Dogbyte/62cd0LLq/),有些人没有工作。
但是有些人做了;像这样(http://jsfiddle.net/lesson8/h4JXs/1/)似乎工作正常。
什么是唯一的,这使得点击触发器适用于某些JSFiddles而不适用于其他JSFiddles?我怀疑这与$(document).ready()
部分有关,但我一直在阅读各种方法来实现这一点,我无法找到任何对我有意义的事情。
回到我之前分享的Stack Overflow主题,最高投票的回复有3个建议:
好吧,在这里发布的JSFiddle按预期工作,没有使用window
。我尝试使用window
的尝试被证明没有结果。
这是一个很好的观点并且有意义,但仍然没有解决我的问题 问题。
onLoad
更改为无包裹(正文或头部)。&#34; 我的具体例子并未包含在onLoad
中(至少,我认为不是这样)。无论如何,谢谢!
答案 0 :(得分:2)
你的小提琴中有两个问题:
首先,您的example
函数声明不正确:
var e = document.getElementById('test');
e.onclick = example;
var example = function( { // parenthasis should be closed before opening braces
alert("hello");
});
应该是:
var e = document.getElementById('test');
e.onclick = example;
var example = function() {
alert("hello");
}
其次,您在onclick分配下方声明var example
,其被解释为:
e.onclick = undefined
只需将var example
移到e.onclick
上方并修复语法问题就可以了:
var e = document.getElementById('test');
var example = function() {
alert("hello");
}
e.onclick = example;
答案 1 :(得分:1)
This is the way如果您不想等待加载DOM。
document.getElementById('btnSave').addEventListener('click',() => {
alert('clicked the damn button!');
});
将某些内容附加到.onclick的原因并不起作用,因为为此,您必须等待DOM加载;在这种情况下,操作顺序非常重要。