【问题标题】:Is there a way to use jQuery functions if they are not defined in the `$(document),ready` function?如果 jQuery 函数没有在 `$(document),ready` 函数中定义,有没有办法使用它们?
【发布时间】:2020-12-13 12:27:29
【问题描述】:

我有几个脚本,$(document).ready 正在另一个脚本中定义。我尝试在另一个文件中定义使用 JQuery 语法的函数,但它们不起作用。如果$(document),ready函数中没有定义jQuery函数,有没有办法使用它们?

这是我的第一个脚本。它只是一个就绪块(是的,它是空的):

$(document).ready(function () {
 
});

这是我的第二个脚本:

function editPage() {
    $("#mybutton").click(function() {
       alert("Clicked"); 
    });
    
}

editPage();

它不起作用。

第二个代码不起作用。它们位于不同的文件中。第一个脚本总是被加载。我已经定义了 jquery 库。如果我将click 代码放在第一个脚本中,它可以工作。

这是 ASP.NET MVC 5

【问题讨论】:

  • 如果没有提供证明问题的minimal reproducible example,任何人都很难在不猜测的情况下帮助解决此问题
  • 我们需要查看您的实际代码以了解您的问题以及您的要求。如果我对您的理解正确,那么您可以在任何地方定义 function() {} 块。如果函数的逻辑依赖于 DOM 中可用的元素,您只需要从 document.ready 处理程序中调用它。
  • 我们可以从 document.ready 处理程序中调用它吗?
  • 可以,只要调用editPage()函数时DOM中存在#mybutton元素。这是 document.ready 处理程序的全部要点,以及为什么它是必要的。如果你想避免使用它,你可以把你的 JS 代码放在页面末尾,就在 </body> 之前

标签: javascript jquery asp.net-mvc


【解决方案1】:

如果我理解你的话,只要你之前引用了 JS 文件,你就可以在后面的所有其他文件中使用它。

在以下场景中,您可以在“your-test-file.js”中使用 Jquery

<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<script src="/your-test-file.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多