Cybernetic Cybernetic - 1 year ago 62
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;