現象:不能調用jquery中ready里面定義的函數
源碼:<script type="text/javascript">
$(document).ready(function(e) {
function test(){
alert('test!');
}
});
test(); // 報錯,test()未定義
</script>
解析:ready也相當於一個函數,即新建一局部函數作用域,外面 當然不可用。和js的onload函數差不多,就比如onload="ready()"
function ready(){
function test(){
alert("test!")
}
}
你在外面肯定調用不了test()函數的
解決方法:
1、把要在外面調用的函數test()從$(document).ready 單獨抽出來,供調用!
2、將要在外部調用的函數的作用域提升為全局作用域(變量申明),如下:
<script type="text/javascript">
var test;//定義一全局變量,可省略
$(document).ready(function(e) {
test=function(){
alert('test!');
}
});
test(); //現在可以在外部調用了
</script>
<a href='javascript:;' onclick='test();'>點擊測試,test();供標簽事件調用</a>
