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