Reputation: 99
I'm working on a Rails 4 app. I need to trigger a click in a link using javascript (or jQuery). I have this in my view:
<%= link_to t('.fixture'), fixture_manager_tournament_path(format: :js), remote: true, id: 'fixture-link' %>
this generates:
<a id="fixture-link" data-remote="true" href="/manager/tournaments/1/fixture.js">Fixture</a>
Notice the remote: true
.
This is working fine when I click the link, but I need to simulate the click through js.
I've tried with:
$('#fixture-link').click();
$('#fixture-link').trigger('click');
$('#fixture-link').trigger('click.rails');
But none of them are working. Thanks in advance!
EDIT
@RustComet Comet It should replace the HTML of one of my divs...
@RichPeck I have a view too big. Then, to avoid long rendering time, I'm trying to load partials through JS. I've used this info: https://stackoverflow.com/a/15174908/3893506 to achieve that.
My view have various tabs and all of they are loaded through JS (except one). Then I added an additional parameter to the route in order to access directly to the desired tab. So I can go to /tournament?active=fixture
and see the fixture.
The issue is, the tab is active but the content isn't here. (Of course, the ajax request and callbacks aren't fired until I clic on the link). That is why I'm trying to simulate a clic on that link and load the corresponding tab.
Upvotes: 4
Views: 2617
Reputation: 6786
Though its very late and you have got your problem solved, but here is the actual solution :)
$('#fixture-link')[0].click();
You missed [0]
portion.
Upvotes: 9
Reputation: 99
Solved! I've solved this by loading the correct JS and executing it directly, using the 'active' parameter and without need a click on the links. Thanks to everyone who helped me!
If someone wants to know, this is the code I've used (its coffeescript):
tournament = $('#main-wrapper').data('tournament')
$.get '/manager/tournaments/' + tournament + '/fixture.js', (data) -> data
Upvotes: -1