【问题标题】:javascript function that uses jquery isn't being called没有调用使用 jquery 的 javascript 函数
【发布时间】:2023-04-08 10:48:01
【问题描述】:

我正在开发一个 ASP.NET 项目并尝试使用 attr 函数, 当我将 jquery 文件的 src 放入脚本标记时,当我通过 c# 代码调用它时,函数不会被调用。

 <script type ="text/javascript" src="jquery-3.1.1.min.js">
    $(document).ready(function () {
        function startGame(path) {
            alert(path);
            $("#test").attr("style", "color:Blue");
            $("#game_param").attr("value", path);
            $("#game_embed").attr("src", path);
        }
    });   
</script>

我试着写一个简单的javascript函数

<script type ="text/javascript" src="jquery-3.1.1.min.js">
    function startGame(a) {
        alert(a);
    }
</script>

它也没有被调用

在这两种情况下,我都收到了未定义 startGame 的错误。 有人可以向我解释我做错了什么吗?

【问题讨论】:

  • 显示你调用函数的代码......只是定义它不会调用函数..
  • 尝试在单独的行中包含 jQuery 脚本。 &lt;script type ="text/javascript" src="jquery-3.1.1.min.js"&gt;&lt;/script&gt; 然后把你的脚本放在它之后 &lt;script&gt;$(document).ready(.....);&lt;/script&gt;

标签: javascript jquery asp.net


【解决方案1】:

您需要将 jQuery 源代码与您的自定义代码分开。否则我相信脚本标签内的内容会被忽略。

 <script type ="text/javascript" src="jquery-3.1.1.min.js"></script>
 <script type="text/javascript">
  $(document).ready(function () {
    var p = 'here/is/my/path';
    function startGame(path) {
        alert(path);
        $("#test").attr("style", "color:Blue");
        $("#game_param").attr("value", path);
        $("#game_embed").attr("src", path);
    }
    startGame(p);
 });
 </script>

【讨论】:

  • 您知道为什么它仍然不会发出警报吗?
  • 我已经更新了我的答案。您可能需要在 document.ready 函数中调用 startGame。
【解决方案2】:

您的 Javascript 不正确。

当你这样做时:

<script type ="text/javascript" src="jquery-3.1.1.min.js">
  function startGame(a) {
    alert(a);
  }
</script>

您将 JavaScript 文件的源设置为 jQuery JS 文件。如果你想定义自己的函数,你必须把它放在自己的script标签中,像这样:

<script type ="text/javascript" src="jquery-3.1.1.min.js"></script>
<script type="text/javascript">
    function startGame(a) {
        alert(a);
    }
</script>

【讨论】:

    【解决方案3】:

    您实际上有多个错误。

    1. 浏览器将忽略写在具有src 属性的script 标记内的任何javascript。所以你需要单独包含jQuery,像这样:

      <script type ="text/javascript" src="jquery-3.1.1.min.js"></script>
      <script>
          // Your code here.
      </script>
      
    2. 你从来没有真正调用过这个函数,只是声明了它们。如果你只打算使用一次,你甚至不需要函数:

      <script type ="text/javascript" src="jquery-3.1.1.min.js"></script>
      <script>
          $(document).ready(function () {
              alert(path);
              $("#test").attr("style", "color:Blue");
              $("#game_param").attr("value", path);
              $("#game_embed").attr("src", path);
          });
      </script>
      

      否则,你需要在声明后调用该函数:

      $(document).ready(function () {
          function startGame(path) {
              // Your code
          }
          startGame();
      });
      

    Function Declarations vs Expressions

    【讨论】:

    • 我通过 c# 调用它们
    • 你能提供你的C#代码吗?如果我的和这里的其他答案没有帮助,那可能不是 JS 的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 2011-12-30
    相关资源
    最近更新 更多