2013-10-15 6 views
1
<p onclick="play()">abc</p> 

JSOnClick и внешних 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() работает хорошо.

+1

Вы пытались удалить '$ (document) .ready (function() {});' если javascript находится во внешнем файле? – Nunners

+1

спасибо всем. решена – bonaca

ответ

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

функция воспроизведения() является 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?

3

Это связано с объемом.

play() не отображается на этом уровне, из-за того, что он обернут внутри вашей функции $(document).ready.

1

Нет необходимости размещать его в $(document).ready(function() {..}

просто упомянуть его в вашем index.js, как

function play(){ 
    do something; 
} 

удалить $(document).ready(function() {

Смежные вопросы