6

I have the following HTML code in my website:

<div id="gallery">
    <ul class="pictures">
        <li><a href="#" data-filter="*" class="active">All</a></li>
        <li><a href="#" data-filter=".web">Web</a></li>
        <li><a href="#" data-filter=".design">Design</a></li>
        <li><a href="#" data-filter=".video">Video</a></li>
    </ul>
</div>

And I want to have a click event triggering when the page loads. I want the first (or second) list item to be clicked when the page loads.

I've tried with the following code, but I failed and I don't know how to do it:

$("document").ready(function() {
    setTimeout(function() {
        $("ul.pictures li:nth-child(2)").trigger("click");
    },10);
});
Matheus Avellar
  • 1,507
  • 1
  • 22
  • 29
silviu.scr
  • 81
  • 1
  • 1
  • 5
  • Are you trying to trigger a jQuery event handler or a native click? Why do you need to trigger a click on pageload? – adeneo Mar 02 '14 at 17:45
  • I'm new with jQuery/JS. I, basically, need an item list to be clicked when the website loads. Because my gallery is divided into filters. – silviu.scr Mar 02 '14 at 17:47
  • Why not give a default value to the properties your click event targets? Set these values to be the same as clicking on the first or second list item. – otherDewi Mar 02 '14 at 19:11

2 Answers2

8

Problem

The code is triggering the "onclick" event on the li element. You want to trigger the "onclick" event on the "a" element.

Solution

$('#gallery li:nth-child(2) a').click();

Example

See jsFiddle

Pete
  • 3,246
  • 4
  • 24
  • 43
1

If you are perfoming click action on Li tag , then below code will be helpfull.

<div id="gallery">
    <ul class="pictures">
        <li><a href="#" data-filter="*" class="active">All</a></li>
        <li><a href="#" data-filter=".web">Web</a></li>
        <li><a href="#" data-filter=".design">Design</a></li>
        <li><a href="#" data-filter=".video">Video</a></li>
    </ul>
</div>
  setTimeout(function () {
                $('.pictures li:nth-child(1)').trigger("click");
            }, 10);
Rinku Choudhary
  • 1,529
  • 1
  • 13
  • 22