更改javascript版本后onclick()失败
我不小心将Webstorm上的Javascript版本从ECMAScript 6更改为flow 在html和javascript中定义的所有onclick()函数(如以下函数)都停止工作更改javascript版本后onclick()失败,javascript,jquery,Javascript,Jquery,我不小心将Webstorm上的Javascript版本从ECMAScript 6更改为flow 在html和javascript中定义的所有onclick()函数(如以下函数)都停止工作 <div class="just-me" onclick="helloworld();"> jquery: document.getElementbyId('test').addEventListener('click', helloWorld); $("#test").on('click',
<div class="just-me" onclick="helloworld();">
jquery:
document.getElementbyId('test').addEventListener('click', helloWorld);
$("#test").on('click', helloWorld);
我试图使用console.log()
,但控制台中没有打印任何内容。
即使恢复到ECMA 6,问题也无法解决
编辑:
helloWorld()
已定义并在范围内。此问题发生在javascript版本更改为flow之后,在此之前一切正常。函数helloWorld
应该在addEventListener()
或on()
中使用之前先定义它
$("#test").click(function() { helloWorld() });
您必须在click wrapper中调用它。它正在工作,您的
helloWorld
函数未找到。请尝试执行$(“#测试”)。在('click',function(){console.log(“hello”)})
@axelaxel尝试过,但仍然不起作用。请看回答下面的注释,这可能是范围问题。我怀疑Flow将函数定义嵌套在另一个函数中,但它需要是全局变量。是的,您应该使用$(document).ready
,然后定义您的事件listener@axelaxel只有在document.getElementById()
失败的情况下才需要这样做,这与函数定义无关。问题已经更新,他们正在使用HTML中的onclick
属性,没有addEventListener()
或on()
。这些只是解决问题的尝试。