Chris Chiera
Chris Chiera

Reputation: 75

jQuery .trigger('click')

I am having trouble getting this to work. I would like to trigger the second link. If anyone can help that would be much appreciated.

    $(".links").click(function () {
        alert($(this));
    })


    function someFunction(){
        $(".links").trigger('click');
    }

    someFunction();

    ...
    <a href="1.html" class="links">One</a>
    <a href="2.html" class="links">Two</a>
    <a href="3.html" class="links">Three</a>

Upvotes: 5

Views: 22685

Answers (3)

Tolga
Tolga

Reputation: 157

The above solutions did not work for me.

But this solution works for me.

$('#elementID').click(function () {
    //some stuff
});

I need trigger to work when the page is loaded.

$( document ).ready(function() {
    $('#elementID').trigger('click');
});

OR

If you do not need to run when the page is loaded, you can use it in the function.

function someFunction(){
    $('#elementID').trigger('click');
}

Upvotes: 0

Arrix
Arrix

Reputation: 2731

To trigger for the second link only:

$(".links").eq(1).trigger('click');

.eq(n) reduce the set of matched elements to the one at the specified index. The index is zero based.

Upvotes: 4

user113716
user113716

Reputation: 322612

Have someFunction() accept an argument that is the 0 based index of link you want to click.

function someFunction( n ){
    $(".links:eq(" + n + ")").trigger('click');
}

someFunction( 1 ); // Pass 1 to trigger the second link

This uses the :eq() selector. You could also use the .eq() method if you wanted.

function someFunction( n ){
    $(".links").eq( n ).trigger('click');
}

Upvotes: 9

Related Questions