Javascript 无法运行JQuery函数

Javascript 无法运行JQuery函数,javascript,jquery,html,Javascript,Jquery,Html,我试图通过使用两个按钮调用JQuery中的函数来运行它。 第一个按钮按预期运行函数,第二个按钮调用第一个按钮使用的函数,但它不工作 这是我的代码: -----------------HTML----------------- <button class="Original">Original</button> <button class="Second">Second</button> ----------------JQuery-------

我试图通过使用两个按钮调用JQuery中的函数来运行它。 第一个按钮按预期运行函数,第二个按钮调用第一个按钮使用的函数,但它不工作

这是我的代码:

-----------------HTML-----------------

<button class="Original">Original</button>
<button class="Second">Second</button>

----------------JQuery----------------

$(document).ready(function(){
    $(".Original").click(function foo(){
        alert("bar");
    });

    $(".Second").click(function(){
        foo();
    });
});
--------------HTML-----------------
起初的
第二
----------------JQuery----------------
$(文档).ready(函数(){
$(“.Original”)。单击(函数foo(){
警报(“酒吧”);
});
$(“.Second”)。单击(函数(){
foo();
});
});

我是一名新手。提前感谢您的帮助

尝试在$(“.Second”)单击上模拟单击$(“.Original”)

foo()方法仅委托给$(“.Original”)click事件,外部未知


此处已更新

您正在调用另一个函数中的函数。因此无法直接调用它。请参阅此提琴:


foo在第一次单击事件中声明。它将不确定作用域,也不适用于第二个应用程序

查看此JS FIDLE以了解此功能的正确范围:

应该在点击事件之外。

我的两分钱

不确定为什么不将函数声明放在事件处理程序之外。e、 g

// declare the function
var foo = function(){
    alert('bar');
};

// bind click event handler for Original
$('.Original').click(foo);

// bind click event handler for Second
$('.Second').click(foo);

// call the function from anywhere
foo();

你为什么不用这样的东西呢?;)

首先
第二
$(函数(){
$('.first,.second')。在('click',function()上{
警惕(‘你点击了我!’);
});
});

或者,重构提供一个双方都可见的函数“foo()”,并在两种情况下调用它,例如,
$(“.Original”)。单击(function(){foo();})模拟单击原始将菊花链事件。这可能是OP想要的,但对我来说,正确定义foo函数的范围更有意义。为什么不将函数声明放在click事件处理程序之外呢?这只是一个较大代码的小示例,我已经编写了大量代码,修改它大约需要一个小时的时间才能完成;)我试图让函数使用两个不同的按钮,并分别调用函数,因为我尝试使用的不是两个按钮,而是通过计算调用的。无论如何,谢谢你的帮助
$(document).ready(function(){
    $(".Original").click(function foo(){
        alert("bar");
    });

    $(".Second").click(function(){
        $(".Original").click().foo();
    });
});
var function foo() {} 
// declare the function
var foo = function(){
    alert('bar');
};

// bind click event handler for Original
$('.Original').click(foo);

// bind click event handler for Second
$('.Second').click(foo);

// call the function from anywhere
foo();
<button class="first">First</button>
<button class="second">Second</button>

$(function(){
    $( '.first, .second' ).on( 'click', function() {
        alert( 'You clicked me!' );
    });
});