Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用rails 4的链接触发jQuery的点击_Javascript_Jquery_Ruby On Rails_Html - Fatal编程技术网

Javascript 使用rails 4的链接触发jQuery的点击

Javascript 使用rails 4的链接触发jQuery的点击,javascript,jquery,ruby-on-rails,html,Javascript,Jquery,Ruby On Rails,Html,我正在开发Rails 4应用程序。我需要使用javascript(或jQuery)触发点击链接。我认为: <%= link_to t('.fixture'), fixture_manager_tournament_path(format: :js), remote: true, id: 'fixture-link' %> 但他们都没有工作。 提前谢谢 编辑 @RustComet它应该取代我的一个div的HTML @RichPeck我的视野太大了。然后,为了避免较长的渲染时间,我尝试

我正在开发Rails 4应用程序。我需要使用javascript(或jQuery)触发点击链接。我认为:

<%= link_to t('.fixture'), fixture_manager_tournament_path(format: :js), remote: true, id: 'fixture-link' %>
但他们都没有工作。 提前谢谢

编辑

@RustComet它应该取代我的一个div的HTML

@RichPeck我的视野太大了。然后,为了避免较长的渲染时间,我尝试通过JS加载片段。我用这个信息:来实现这一点

我的视图有各种选项卡,它们都是通过JS加载的(除了一个)。然后,我向route添加了一个额外的参数,以便直接访问所需的选项卡。因此,我可以转到
/tournament?active=fixture
并查看fixture


问题是,选项卡处于活动状态,但内容不在此处。(当然,ajax请求和回调在我点击链接之前不会触发)。这就是为什么我试图在该链接上模拟clic并加载相应的选项卡

解决了!我已经通过加载正确的JS并直接执行它解决了这个问题,使用“active”参数,无需点击链接。 谢谢所有帮助我的人

如果有人想知道,这就是我使用的代码(它的咖啡脚本):


虽然已经很晚了,你的问题已经解决了,但实际的解决办法是:)


您错过了
[0]
部分。

$(“#fixture link”)。单击()产生任何类型的错误?您能否打开调试器并尝试访问
$(“#fixture link”)
以查看它是否
未定义
?中间一行应该可以。您是否已将JavaScript代码包装在
$(document).ready()块中?@brito否,控制台中没有错误。如果我在控制台中访问
$('#fixture link')
,它将返回正确的对象<代码>是否有可能JS事件实际上正在触发,但没有返回任何内容?为什么需要模拟单击?
<a id="fixture-link" data-remote="true" href="/manager/tournaments/1/fixture.js">Fixture</a>
$('#fixture-link').click();
$('#fixture-link').trigger('click');
$('#fixture-link').trigger('click.rails');
tournament = $('#main-wrapper').data('tournament')
$.get '/manager/tournaments/' + tournament + '/fixture.js', (data) -> data
$('#fixture-link')[0].click();