我只是不明白。我搜索和搜索,但为此我无法弄清楚什么是“正确的”。
有三个例子。
1) Fiddle 1.0
这里我们有html
withonlick="function"
和那里的javascript
功能也很好用
<span class="classic one" onclick="someFunction(this,'one')">CLICK HERE</span>
<script type="text/javascript">
function someFunction(obj,nr) {
var string = $(obj).attr('class');
$('.result').text( string );
}
</script>
2) Fiddle 2.0 然后,当我将函数移动到脚本部分(将其移动到 .js 文件)时,我收到一个错误“ReferenceError: someFunction is not defined”
这是问题的开始
3) Fiddle 3 所以现在我在文档准备调用中有一个函数 .on(click 总是工作正常。这个函数正在调用另一个函数,它在 docuemnt.ready() 之外并且工作正常。
所以这个问题。我什么时候必须定义函数在哪里以及为什么它总是有效的?
谢谢!
示例 3) 中的所有代码如下所示:
<div class="result">result</div>
<span class="classic one" onclick="someFunction(this,'one')">CLICK HERE</span>
<span class="classic two" onclick="someFunction(this,'two')">CLICK HERE</span>
<span class="classic three" onclick="someFunction(this,'three')">CLICK HERE</span>
<span class="classic four" onclick="someFunction(this,'four')">CLICK HERE</span>
<div class="ready">ready</div>
<span class="callOtherFunction">Call other function</span>
<script type="text/javascript">
$(document).ready(function(){
$('.ready').text( 'dom is ready' );
function someFunction(obj,nr) {
var string = $(obj).attr('class');
$('.result').text( string );
}
$( "span.callOtherFunction" ).on({
click: function() {
$(this).css("color","red");
$(this).addClass("xyz");
otherFunctionCallingFunction($(this));
}
});
});
function otherFunctionCallingFunction($me) {
$('.callOtherFunction').append( ' --> ' + $me.attr('class') );
}
</script>