2010-06-14 3 views
0

아래에 div를 표시하거나 숨기려면 버튼을 만들려고합니다. 모두 잘 작동합니다. 마지막 비트로 고심하고 있습니다!jQuery .toggle()이 두 번째 함수에서 예상대로 작동하지 않습니까?

나는 (

$(this).find('.hide-close').click(
      function() { 
       $(this).siblings('.dragbox-content').toggle(function() { 

        alert($(this).parent().attr("id") + ' Show'); 

        },function() { 

        alert($(this).parent().attr("id") + ' Hide'); 

        } 

       ); 

      }) 
     .end() 
     }); 

토글 내에서 두 번째 기능을 가지고, 다음 코드를 사용하는 경우 .. 여기에 내가 가진 무엇, 그것은 내가 다른 변수를 전달할 수있는 표시 또는 숨기기 행동의 어떠했는지를 구별 할 필요가), 그것은 작동한다?! 그러나 그때 나는 show/hide 변수가 없습니다. 사전에 어떤 도움

$(this).find('.hide-close').click(
      function() { 
       $(this).siblings('.dragbox-content').toggle(function() { 

        alert($(this).parent().attr("id") + ' Show'); 

        } 

       ); 

      }) 
     .end() 
     }); 

감사, 희망이 난 그냥 볼 수없는 정말 간단한 일입니다! :)

답변

1

기능 내에 $(this).is(":visible")을 사용하여 표시 여부를 확인할 수 있습니다.

+0

환상적 :) 나는 이것을 사용했습니다. if ($ this) .is (": hidden")) {alert ($ (this)) .parent(). attr ("id") + '이 (가) 숨겨졌습니다.'); } 완벽하게 도움을 주셔서 감사합니다. – Christopher

0

jQuery 토글 기능은 이벤트 (마우스 클릭)가 발생할 때 실행할 함수를 할당하기위한 것입니다. 실제로 이벤트를 발생 시키려면 click 함수를 호출해야합니다.

$('.dragbox-content').toggle(function() { 
     alert($(this).parent().attr("id") + ' Show'); 
    },function() { 
     alert($(this).parent().attr("id") + ' Hide'); 
    } 
); 

이 코드를 사용하여 클릭시 실행할 기능을 할당하십시오.

$(this).find('.hide-close').click(
function() { 
    $(this).siblings('.dragbox-content').click(); 
}) 
.end(); 

및이 이벤트를 발생시킵니다.

관련 문제