onclick和外部js文件

时间:2013-10-15 07:45:30

标签: javascript jquery onclick

<p onclick="play()">abc</p>

js

 function play(){
    do something; 
 }

如果js代码与p

位于同一文件中,则上述方法有效

但是说:

<script src="index.js"></script>

index.js

$(document).ready( function() {
     function play() {
        do something; 
     }
});

我得到的是ReferenceError: play is not defined

play()以外的其他功能效果很好。

3 个答案:

答案 0 :(得分:4)

$(document).ready(function(){
  function play(){
        do something; 
     }
});

play()函数为local$(document).ready(function(){而非global

请勿将播放功能包装在$(document).ready(function(){中,以使其范围保持全局。

function play(){
    do something; 
}

阅读Global and Local and Private Functions (Javascript)

What is the scope of variables in JavaScript?

答案 1 :(得分:3)

这是由于范围。

play()在该级别不可见,因为它被包含在$(document).ready函数中。

答案 2 :(得分:1)

无需将其放在$(document).ready( function() {..}

只需在index.js中提及

即可
function play(){
  do something; 
}

删除$(document).ready( function() {