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,479
  • 1
  • 24
  • 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,206
  • 4
  • 21
  • 41
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
  • 865
  • 1
  • 8
  • 18