无法运行JQuery函数

时间:2014-01-06 12:03:40

标签: javascript jquery html

我正在尝试在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();
    });
});

JSFiddle Example

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

5 个答案:

答案 0 :(得分:5)

尝试在$(“。Second”)点击

上模拟点击$(“。Original”)
$(".Second").click(function(){
        $(".Original").click();
    });

foo()方法只委托给$(“。Original”)点击事件,外面是未知的。

此处已更新fiddle

答案 1 :(得分:3)

我的两分钱。

不确定为什么你不只是在事件处理程序之外有函数声明。 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();

答案 2 :(得分:2)

你正在另一个函数中调用一个函数。所以你不能直接调用它。看看这个小提琴:http://jsfiddle.net/tRm3d/1/

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

    $(".Second").click(function(){
        $(".Original").click().foo();
    });
});

答案 3 :(得分:0)

foo在第一个单击事件中声明。它不会作为范围并且可用于第二个。

请参阅此JS小提琴,了解正确使用此功能的方法:http://jsfiddle.net/tRm3d/4/

var function foo() {} 

应该在点击事件之外。

答案 4 :(得分:0)

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

<button class="first">First</button>
<button class="second">Second</button>

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