Jamison
Jamison

Reputation: 91

Trigger a button on page load

I have this function

$("a#<?php echo $custom_jq_settings['toggle']; ?>").click(function() {
        jQuery("#<?php echo $custom_jq_settings['div']; ?>").slideToggle(400);
        jQuery("#featurepagination").toggle();
        jQuery("#featuretitlewrapper").toggle();
        return false;
    });

And this is the button I want to trigger on page load

<a href="#" id="featuretoggle" onclick="changeText('<?php if (is_front_page()) {?>Show<?php } else { ?>Show<?php } ?> Features');"><?php if (is_front_page()) {?>Hide<?php } else { ?>Hide<?php } ?> Features</a>

I would like to trigger that button when the page loads so that it starts open but then slides/closes

Upvotes: 6

Views: 42821

Answers (4)

Adaz
Adaz

Reputation: 1665

That's the easiest way:

<script>
    $(function() {
        $("#featuretoggle").trigger("click");
    });
</script>

Upvotes: 6

Shwet
Shwet

Reputation: 1868

What you want is can be achived by using setTimeout() function.

$(document).ready(function() {
    setTimeout(function() {
        $("a#<?php echo $custom_jq_settings['toggle']; ?>").trigger('click');
    },10);
});

This will work for you surely...

Upvotes: 0

aknosis
aknosis

Reputation: 4308

Does this not work?

<script>
    jQuery(function(){
      jQuery('#featuretoggle').click();
    });
</script>

Upvotes: 11

David
David

Reputation: 218837

You can trigger a click event manually with jQuery:

$('#featuretoggle').click();

To do this when the page loads:

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

I imagine you'll want this to be the last thing to happen when loading the page, so make sure it's the last line to be executed within $(document).ready().

See this example:

<a href="#" id="someButton">Foo</a>
<script type="text/javascript">
    $(document).ready(function() {
        // bind the click event
        $('#someButton').click(function() {
            alert('baz');
        });

        // trigger the click event
        $('#someButton').click();
    });
</script>

Upvotes: 1

Related Questions