当HTML元素无法调用外部JS中定义的函数时

时间:2018-04-07 02:48:46

标签: javascript html

我解决了这个问题,但试图理解为什么第一次和第二次尝试都没有解决问题:

我基本上有一个附带事件的HTML元素(myFunction()):echo '<button class="btn remove-btn" onclick="myFunction(' . $row["id"] . ')">X</button>';

我想定义myFunction()函数在外部JS文件中定义,但它在第一次和第二次尝试时都没有工作:

  1. 首次尝试使用custom.js - 失败
  2.   

    myFunction未定义

    &#13;
    &#13;
    $(document).ready(function() {
        //some jQuery code for other purposes
        
        //the myFunction is defined here
        function myFunction(id) {
            window.open("remove_cat.php?id=" + id, "width=200,height=100");
    }
        
    })
    &#13;
    &#13;
    &#13;

    1. 第二次尝试使用custom.js - 失败
    2.   

      myFunction未定义

      &#13;
      &#13;
      $(document).ready(function() {
          //some jQuery code for other purposes
          }
          
      
      //the myFunction is defined here
      function myFunction(id) {
          window.open("remove_cat.php?id=" + id, "width=200,height=100");
      }
      &#13;
      &#13;
      &#13;

      1. 将函数定义移动到PHP文件本身 - 工作
      2. 创建另一个myfunction.js文件 - 工作:
      3. &#13;
        &#13;
        function myFunction(id) {
                window.open("remove_cat.php?id=" + id, "width=200,height=100");
        }
        &#13;
        &#13;
        &#13;

1 个答案:

答案 0 :(得分:0)

第一个失败是因为你没有在$(document).ready中声明一个函数使其可调用。 $(document).ready在页面准备安全操作时调用其中的所有函数。您无需在$(document).ready中声明函数。您还有语法错误(结尾处缺少分号)。 https://learn.jquery.com/using-jquery-core/document-ready/

第二个失败,因为您有语法错误。您需要使用以下内容进行修复:

$(document).ready(function() {
    //some jQuery code for other purposes
    });