Javascript 为什么实际的鼠标单击不起作用,而JS控制台中的do.click()起作用?

Javascript 为什么实际的鼠标单击不起作用,而JS控制台中的do.click()起作用?,javascript,jquery,ruby-on-rails,ruby-on-rails-4,asset-pipeline,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,Asset Pipeline,当我试图通过单击按钮来执行一些JS时,它并没有达到我想要的效果。然而,当我启动JS控制台并手动执行它时,它就工作了 这是我的整个JS文件(仅在发生冲突时提供): 以下是正在触发的HTML: <div class="hidden-xs col-sm-3 masthead-group-3 pull-left"> <div id="togglesidebar" class="pull-right"> <button class="btn btn-defa

当我试图通过单击按钮来执行一些JS时,它并没有达到我想要的效果。然而,当我启动JS控制台并手动执行它时,它就工作了

这是我的整个JS文件(仅在发生冲突时提供):

以下是正在触发的HTML:

<div class="hidden-xs col-sm-3 masthead-group-3 pull-left">
    <div id="togglesidebar" class="pull-right">
     <button class="btn btn-default btn-lg btn-primary"><i class="fa fa-child"></i> Submit News</button>
    </div>
</div>

提交新闻
然而,当我走到我的控制台并这样做时,它工作得非常完美:

$("#togglesidebar");
[<div id=​"togglesidebar" class=​"pull-right">​…​</div>​]
$("#togglesidebar").click();
[<div id=​"togglesidebar" class=​"pull-right">​…​</div>​]
$(“#切换边栏”);
[​…​​]
$(“#切换边栏”)。单击();
[​…​​]

您可以。

您有两个id相同的按钮

jQuery
#
选择器仅查找该id的第一个匹配项,因此隐藏第一个按钮

删除它或更改它的名称,它应该可以工作;-)

编辑:


您还可以将它们更改为
.className
而不是
id
,以及所有对类的引用,并且应该可以工作。

在点击事件到达JS引擎之前,是否有任何东西拦截了它?我想点击会转到按钮。@Luigidelcarno我怀疑,但如何测试?您可以查看源代码吗?@SergioTulentsev如果你能帮我弄清楚情况是否如此,我会很高兴的。@marcamillion:post a jsfiddle:)啊……很有趣。我想问题是我想拥有相同的功能,但在不同的视图中(如桌面或移动设备)。我应该在我的JS中使用重复的功能吗?或者是否有一些优雅的方法来干涸我的代码,并允许使用两个不同ID的两个项目?如果您希望对多个元素使用相同的功能/事件处理而不是ID,则使用类来匹配您的按钮;-)@TheGr8_Nik一件事现在发生的是,一旦我点击它两次(所以我的
#secondary
),它就不会再发生了。JS在类中被多次激发后就不能正常激发。想法?你有一个真实的例子吗?
$("#togglesidebar");
[<div id=​"togglesidebar" class=​"pull-right">​…​</div>​]
$("#togglesidebar").click();
[<div id=​"togglesidebar" class=​"pull-right">​…​</div>​]