Reputation: 91
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
Reputation: 1665
That's the easiest way:
<script>
$(function() {
$("#featuretoggle").trigger("click");
});
</script>
Upvotes: 6
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
Reputation: 4308
Does this not work?
<script>
jQuery(function(){
jQuery('#featuretoggle').click();
});
</script>
Upvotes: 11
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