Jquery:从不同文档调用函数

发布于 2024-08-29 13:05:42 字数 587 浏览 4 评论 0原文

我将一些 Jquery 函数保存在“custom.js”文件中。在某些页面上,我需要将 PHP 变量传递给 Jquery,因此一些 Jquery 位需要保留在 HTML 文档中。然而,当我现在尝试将事情重构到最低限度时,我遇到了以下问题:

如果我将其放入我的 custom.js 中:

$(document).ready(function()
{
   function sayHello() {
      alert("hello");
   }
}

并且将其放入 HTML 文档中:

<script type="text/javascript">
   $(document).ready(function()
   {
      sayHello();
   });
</script>

... 该函数不会被调用。然而,如果两者都放在 HTML 文档中,该函数就可以正常工作。

我是否需要为该函数声明某种公共属性,或者如何在 HTML 中获取 Jquery 函数以与外部 .js 文件对话?它们被正确包含并且在其他方​​面工作正常。

谢谢。

I've got some Jquery functions that I keep in a "custom.js" file. On some pages, I need to pass PHP variables to the Jquery so some Jquery bits need to remain in the HTML documents. However, as I'm now trying to refactor things to the minimum, I'm tripping over the following:

If I put this in my custom.js:

$(document).ready(function()
{
   function sayHello() {
      alert("hello");
   }
}

And this in a HTML document:

<script type="text/javascript">
   $(document).ready(function()
   {
      sayHello();
   });
</script>

... the function doesn't get called. However, if both are placed in the HTML document, the function works fine.

Is there some kind of public property I need to declare for the function or how do I get Jquery functions in my HTML to talk to external .js files? They're correctly included and work fine otherwise.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云醉月微眠 2024-09-05 13:05:42

问题是您在这一行声明的匿名函数中定义了 sayHello :

$(document).ready(function()

因此,sayHello 的作用域仅限于该函数。如果您希望从应用程序中的其他任何位置(例如页面上的 HTML 或 custom.js 中的另一行)调用 sayHello,则需要更改 custom.js 并将其定义在调用之外$(文档).ready

function sayHello()
{
   alert("hello");
}

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

The problem is you're defining sayHello within the anonymous function that is declared on this line:

$(document).ready(function()

As a result, sayHello is scoped to only that function. If you wish to call sayHello from anywhere else in your application, such as the HTML on your page or another line in custom.js, you will need to change custom.js and define it outside the call to $(document).ready:

function sayHello()
{
   alert("hello");
}

$(document).ready(function()
{
   sayHello();
}
¢好甜 2024-09-05 13:05:42

只需将函数设置为全局变量即可

sayHello=function() {
    alert("hello");
}

just make the function a global variable

sayHello=function() {
    alert("hello");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文