Javascript tylko jedno kliknięcie.

0

Witam,
Posiadam funkcje, która wyświetla obiekt z efektem, już zrobiłem że gdy jeden obiekt jest widoczny i po kliknięciu na inny ten peirwszy się chowa. Lecz mam inny problem, kiedy mam pokazany obiekt to jak kliknę na niego jeszcze raz to znowu się wywołuje .show z efektem. Chciałbym zrobić że jak jest obiekt widoczny to gdy nacisnę znowu to żeby nic się nie działo. Oto kod funkcji.

function ShowObjectWithEffect(id, flag, effect, length, easing)
{
   var selector = '#' + id;
   var options = {};
   var index;
   var liczba=0;
   var directions = new Array();
   directions[0] = "horizontal";
   directions[1] = "vertical";
   directions[2] = "left";
   directions[3] = "right";
   directions[4] = "up";
   directions[5] = "down";
   for (i=0; i<6; i++)
   {
      index = effect.indexOf(directions[i]);
      if (index != -1)
      {
         options = { direction : directions[i] };
         effect = effect.substring(0, index);
      }
   }
   if ($(selector).css('visibility') == 'hidden')
   {
      $(selector).css('display', 'none');
      $(selector).css('visibility', '');
   }
   if (effect == 'fade')
   {
      if (flag == 1)
         $(selector).fadeIn(length);
      else
         $(selector).fadeOut(length);
   }
   else
   {
      if (typeof easing != 'undefined')
      {
         options.easing = easing;
      }
      if (flag == 1)
	  {
         $(selector).toggle(effect, options, length);
		 }
      else
      if(($(selector).css('visibility') == 'visible') && ($(selector).css('display') != 'none'))
	  {
         $(selector).hide(effect, options, length);
	  }
   }
}
0

Problem rozwiązany, wystarczyło dodać zapytanie

if($(selector).is(':hidden'))

1 użytkowników online, w tym zalogowanych: 0, gości: 1