【问题标题】:onclick and external js fileonclick 和外部 js 文件
【发布时间】:2013-10-22 22:29:38
【问题描述】:
<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() 之外的其他功能都运行良好。

【问题讨论】:

  • 如果javascript在外部文件中,您是否尝试过删除$(document).ready(function() {});
  • 感谢大家。解决了

标签: javascript jquery onclick


【解决方案1】:

这是由于范围。

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

【讨论】:

    【解决方案2】:
    $(document).ready(function(){
      function play(){
            do something; 
         }
    });
    

    play() 函数是 local$(document).ready(function(){ 不是 global

    不要将你的 play 函数包装在 $(document).ready(function(){ 中以保持它的全局范围。

    function play(){
        do something; 
    }
    

    阅读Global and Local and Private Functions (Javascript)

    What is the scope of variables in JavaScript?

    【讨论】:

      【解决方案3】:

      不用放在$(document).ready( function() {..}

      只需在您的index.js 中提及

      function play(){
        do something; 
      }
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 2023-03-08
        • 1970-01-01
        • 2011-04-10
        • 2018-04-27
        • 2022-01-12
        • 2012-06-19
        相关资源
        最近更新 更多