Javascript 为什么documentready中的默认函数声明会';行不通
我想调用一个通过onclick事件在document.ready()中声明的函数。 test.js:Javascript 为什么documentready中的默认函数声明会';行不通,javascript,jquery,Javascript,Jquery,我想调用一个通过onclick事件在document.ready()中声明的函数。 test.js: $(document).ready(function(){ function change(){ $('#content').html("changed"); } }); 但它是有效的: $(document).ready(function(){ change = function(){ $('#content').html("changed"
$(document).ready(function(){
function change(){
$('#content').html("changed");
}
});
但它是有效的:
$(document).ready(function(){
change = function(){
$('#content').html("changed");
}
});
test.html
<div id="click" onclick="change()">click</div>
<div id="content">content</div>
<script src="test.js"></script>
点击
内容
我想知道为什么第一个声明不起作用,而第二个却起作用?函数声明创建局部范围的变量 对以前未声明的变量的赋值会创建全局变量(严格模式除外,在这种情况下它们是错误的)
如果您想从单击事件调用函数,那么使用JavaScript绑定它(因为您使用的是jQuery,所以使用
on
方法)。避免在HTML中使用固有的事件属性。因为change
在第二个代码中是一个全局变量。只是想一想为什么不使用事件处理程序?在这种情况下,文档就绪的用法完全没有意义。首先,你不是针对它里面的dom,而是声明一个必须在全局范围内的函数,其次,你的脚本是在受影响的元素之后,所以即使你切换到正确的事件绑定,也不需要它。我只是想知道为什么会发生这种情况。谢谢大家