我正在尝试在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();
});
});
我是新手。提前感谢您的帮助
答案 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!' );
});
});