javascript - 如何在使用 jQuery 时使 Javascript 函数为 "defined"?

标签 javascript jquery

这里发生了很多问题,我找到了一种方法来使它们“经过验证”,但是,这安全吗?如果不行你能帮我改正吗?

$('document').ready(function{
    var $demo = $('demo');
    $demo.onclick(function runAlpha(){
        //do something with alpha
    });
    $demo.onclick(function runBeta() {
        //do something with beta
    });
});

function runAlpha(){}
function runBeta(){}

jquery 之外的函数留空为 null,并且 javascript 会识别它的定义。但有没有办法让它更有效呢?如果我在 javascript 部分添加任何内容,是否会导致代码冲突?还是会添加进去?

最佳答案

对你想要做什么有点困惑。编写 jQuery 的常用方法是使用匿名函数,如下所示:

$('document').ready(function{
    var $demo = $('demo');
    $demo.on("click", function() {
        //do something with alpha
    });
    $demo.on("click", function() {
        //do something with beta
    });
});

如果你想要命名函数,你可能会这样做:

$('document').ready(function{
    var $demo = $('demo');
    $demo.on("click", runAlpha);
    $demo.on("click", runBeta);
     function runAlpha(){
      //do something with alpha
    }
    function runBeta(){
      //do something with beta
    }
});

听起来您希望能够在 $(document).ready 部分之外调用 runAlpha 或 runBeta 。我通常这样做的方式是:

$('demo').trigger("click");

如果你想直接调用函数,请将函数定义移到闭包之外:

    $('document').ready(function{
    var $demo = $('demo');
    $demo.on("click", function() {
        //do something with alpha
    });
    $demo.on("click", function() {
        //do something with beta
    });
});

function runAlpha(){
    //do something with alpha
}
function runBeta(){
     //do something with beta
}

我个人会采用第一种方式,因为我不喜欢“污染”全局命名空间,但这确实是您的决定。

关于javascript - 如何在使用 jQuery 时使 Javascript 函数为 "defined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36944640/

相关文章:

javascript - 从对象中删除没有值(value)的项目

javascript - 图像加载 - 快速库

javascript - AJAX动态内容 "event delegation"替换为 "each"

javascript - 从查询字符串中获取 url 并将其加载到 div 中

javascript - 如何在 D3 force layout on load 中为 3 个节点指定 3 种不同的自定义颜色

javascript - 关闭对话框时出现确认窗口的问题?

javascript - 如果数组中的所有值均为真(字符串)并且其中一个值为假(字符串),如何返回 boolean 值真停止使用 Javascript 检查

jQuery post 调用导致 "Failed to load resource: net::ERR_INSUFFICIENT_RESOURCES"

javascript - 每个间隔向元素附加一个点

javascript - 为什么我的 div 在移动时不留在我的另一个 div 上?