我试图JavaScript从onclick触发器调用函数.
HTML 部分:
<div class="my_radio">
<input type="radio" name="my_radio" value="1" onclick="my_func()"/> first button
</div><!-- end of class my_radio -->
Run Code Online (Sandbox Code Playgroud)
和JavaScript代码
<script type="text/javascript">
$(document).ready(function(){
function my_func(){
alert("this is an alert");
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是行不通的.
但是,如果我将该JavaScript功能 保留在$(document).ready()代码之外,它就可以工作.以下是相关的代码段:
<script type="text/javascript">
$(document).ready(function(){
function my_func111(){
alert("this is an alert");
}
});
function my_func(){
alert("this is an alert");
}
</script>
Run Code Online (Sandbox Code Playgroud)
1)为什么第一个JavaScript代码片段不起作用?
2)如何让第一个JavaScript代码段工作?
编辑:
因此我知道,$(document).ready()当网页完全加载时执行.那么my_func()如果我my_func()在外面写,如何防止在完整页面加载之前或之后激活$(document).ready()?
这都是关于javascript执行上下文和范围的.
您在函数中定义的所有内容仅在此函数中知道.
在第一次测试中,该函数my_func()只能在就绪回调(以及内部其他对象)中使用.你不能在外面引用它.
在第二个示例中,该函数my_func()对文档是全局的,可以从任何地方访问.
我知道这可能是一个简单的简单解释:-)
如果您在回调中定义函数,则只能在此回调中使用它:
$(document).ready(function(){
function something(){
alert('test');
}
//..
something(); // Will work
}
something(); // Won't work
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18962 次 |
| 最近记录: |