Javascript 如何从另一个按钮激活一个按钮

Javascript 如何从另一个按钮激活一个按钮,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的问题与之前提出的其他问题有点不同,因为我主要想激活但(不仅仅是启动它)。这是我的syntx: $(“#秒#btn”)。单击(函数(){ $('first#btn')。addClass('active'); }) #第一个{ 背景颜色:绿色; } #第一个btn:活动{ 背景颜色:黄色; } #第一个激活{ 背景颜色:黄色; } 第一 第二个 如果要将类更改为错误的元素,请将$(“#btn”)更改为$(“#first_btn”): 此外,还需要使用更通用的类,如下所示: .active {

我的问题与之前提出的其他问题有点不同,因为我主要想激活但(不仅仅是启动它)。这是我的syntx:

$(“#秒#btn”)。单击(函数(){
$('first#btn')。addClass('active');
})
#第一个{
背景颜色:绿色;
}
#第一个btn:活动{
背景颜色:黄色;
}
#第一个激活{
背景颜色:黄色;
}

第一
第二个

如果要将类更改为错误的元素,请将
$(“#btn”)
更改为
$(“#first_btn”)

此外,还需要使用更通用的类,如下所示:

.active {
  background-color: yellow;
}
#first_btn:active,
#first_btn.active {
  background-color: yellow;
}

如果要将类更改为错误的元素,请将
$('#btn')
更改为
$('#first_btn')

此外,还需要使用更通用的类,如下所示:

.active {
  background-color: yellow;
}
#first_btn:active,
#first_btn.active {
  background-color: yellow;
}
您在那里有一些错误: -首先,btn解析为nothing(这不是DOM中的ID) -您正在添加一个“活动”类,因此您必须在CSS中瞄准该类。注意我更改了“.”(类选择器)的“:”(伪元素)

试试看,如果你遇到更多的麻烦就来这里;)

编辑:

这可能不是最好的方法,但可能有助于实现您的目标:

$("#second_btn").click(function(){
    $('#first_btn').toggleClass('active');
  window.setTimeout(function(){
    $('#first_btn').toggleClass('active');
  }, 100);
})
我在这里做的是设置一个“活动”类(将按钮涂成黄色),并在0.1秒后再次切换该类(恢复原始按钮颜色)

你觉得怎么样

$("#second_btn").click(function(){
    $('#first_btn').click();
   $('#first_btn').addClass('active');
})
#first_btn.active{
background-color:yellow;
}
您在那里有一些错误: -首先,btn解析为nothing(这不是DOM中的ID) -您正在添加一个“活动”类,因此您必须在CSS中瞄准该类。注意我更改了“.”(类选择器)的“:”(伪元素)

试试看,如果你遇到更多的麻烦就来这里;)

编辑:

这可能不是最好的方法,但可能有助于实现您的目标:

$("#second_btn").click(function(){
    $('#first_btn').toggleClass('active');
  window.setTimeout(function(){
    $('#first_btn').toggleClass('active');
  }, 100);
})
我在这里做的是设置一个“活动”类(将按钮涂成黄色),并在0.1秒后再次切换该类(恢复原始按钮颜色)

你觉得怎么样

$("#second_btn").click(function(){
    $('#first_btn').click();
   $('#first_btn').addClass('active');
})
#first_btn.active{
background-color:yellow;
}
这将触发事件单击第一个按钮,并将颜色更改为黄色

然后定义一个处理程序来处理第一个按钮单击来处理事件

在fiddle版本中,如果您将活动类分配给错误的ID,还可以为第一个按钮添加一个单击事件

这将触发事件单击第一个按钮,并将颜色更改为黄色

然后定义一个处理程序来处理第一个按钮单击来处理事件


在fiddle版本中,如果您将活动类分配给错误的ID,还可以为第一个按钮添加一个单击事件。

您应该为类指定样式,因此:

#first_btn.active{ // not :active
    background-color: yellow;
}
如果你想模拟点击第一个按钮,你应该添加smth。就像这样:

$('#first_btn').click();

您应该为类指定样式,因此:

#first_btn.active{ // not :active
    background-color: yellow;
}
如果你想模拟点击第一个按钮,你应该添加smth。就像这样:

$('#first_btn').click();

我假设您没有注意到,但是在
jsFiddle
code中,第一个按钮的
jQuery
选择器是错误的,但是在您的问题中是可以的,所以我将忽略这一点

问题是,您正在添加css类,但在css中,您已经声明了按钮的
:active
状态的样式,而不是类,您可以保留该声明并添加
.active
类,因此您的css代码如下所示:

.active {
  background-color: yellow;
}
#first_btn:active,
#first_btn.active {
  background-color: yellow;
}

添加该类而不是替换状态(
:active
),您将涵盖这两种情况,当直接单击第一个按钮和单击第二个按钮时。

我假设您没有注意到,但是在
jsFiddle
代码中,第一个按钮的
jQuery
选择器是错误的,但是在您的问题中是可以的,所以我将忽略它

问题是,您正在添加css类,但在css中,您已经声明了按钮的
:active
状态的样式,而不是类,您可以保留该声明并添加
.active
类,因此您的css代码如下所示:

.active {
  background-color: yellow;
}
#first_btn:active,
#first_btn.active {
  background-color: yellow;
}

添加该类而不是替换状态(
:active
),您将涵盖两种情况,即直接单击第一个按钮和单击第二个按钮。

您需要的是模拟按钮单击操作:第二个按钮的行为与第一个按钮类似

  $("#first_btn").mousedown(function(){
     $("#second_btn").addClass("active");
   });
   $("#first_btn").mouseup(function(){
     $("#second_btn").removeClass("active");
   });

如果您想在第二个按钮上执行真正的“单击”操作,可以在添加/删除类后添加事件链接。您需要的是模拟按钮单击操作:第二个按钮的操作与第一个按钮类似

  $("#first_btn").mousedown(function(){
     $("#second_btn").addClass("active");
   });
   $("#first_btn").mouseup(function(){
     $("#second_btn").removeClass("active");
   });


如果您想在第二个按钮上执行真正的“单击”操作,您可以在添加/删除类后添加事件链接

可能重复为什么在第二个按钮单击处理程序中,您试图为类为“#btn”的不存在的按钮设置“活动”类?您所说的火是什么意思。。您是否需要在第二个按钮上触发单击事件???可能重复为什么在第二个按钮单击处理程序中,您试图为不存在的按钮设置“活动”类,类为“#btn”?您所说的“触发”是什么意思。。你需要在第二个按钮上触发点击事件吗???很好。但是,这并没有解决问题。它会永久性地将背景颜色更改为黄色,这不是我想要的。请运行代码片段,您将看到我所说的内容。但是,此CSS不会仅适用于第一个按钮,它将应用于任何具有活动状态的元素classs@AvaLucas哦,是的,当前代码只会更改一次,但您可以使用
toggleClass
removeClass
(正如Jose Gomez和Nhon Dinh所建议的那样)。很好。但是,这并没有解决问题。它会永久性地将背景颜色更改为黄色,这不是我想要的。请运行代码片段,您将看到我所说的内容。但是,此CSS将不仅仅适用于第一个CSS,而是适用于第二个CSS