Cybernetic Cybernetic - 1 year ago 77
Javascript Question

Only open accordion once, but still call onclick each time, when button clicked in jquery

I am using jquery accordion animation:

$('.accordion').click(function() {
$(this).next().toggle("fold", 1000);
return false;

along with a button for expanding the div below:

<button class="accordion" onclick="my_method()">EXPAND</button>
<div class="panel">
...contents to expand here

This works great. But I only want to allow the accordion to open once (unless page refreshed obviously), although the onclick event should call the method every time the button is clicked.

Answer Source

You can use one() method.

$('.accordion').one('click', function() {
  $(this).next().toggle("fold", 1000);
  return false;


Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download