En otestad idé är att du sätter ett commandargument på din button som talar om om den är tryckt på eller inte. Alltså som default så är commandargument "open" och sen i det event du kör när knappen trycks på första gången så sätter du den till "close" ... i funktionen har du sedan en if-sats som hindrar funktionen från att köras igen om commandargument är close.
Du kan ju även sätta knappen till "disabled" men det funkar ju inte om man trycker på knappen igen innan sidan hunnit laddas om.