2013-02-22 5 views
0

이 코드를 사용하여 텍스트 영역에서 설명 (WordPress 블로그)을 클릭하면 "로그인 상자"가 표시됩니다.요소가로드 될 때 블록을 숨길 필요가 있습니다

$('#comments textarea').click(function() { 
    $('#comment-user-details').slideDown("slow"); 
}); 

양식은 사용자가 로그인하지 않은 경우에만 표시됩니다.

을 그러나, 나는 사용자가 FB 프로파일에 주석 수 있도록 "단순 페이스 북 연결"플러그인을 사용하고 있기 때문에 페이스 북으로 로그인하면 "로그인 상자"가로드되고 플러그인은 "display : none;"을 추가하여 플러그인을 숨 깁니다. 클래스하지만 위의 코드를 가지고 있기 때문에 사용자가 텍스트 영역을 클릭하면 "로그인 폼"이 분명히 나타납니다. 플러그인 요소가로드 된 경우

내가 확인하려고 ("로 ...의 기록"블록), 말을 "이 요소가로드되지 않은 경우에만 내 위의 함수를 사용"하는이 뭔가 :

if ($("#fb-user").length == 0) { 
    $('#comments textarea').click(function() { 
     $('#comment-user-details').slideDown("slow"); 
    }); 
} 

하지만 문제는 플러그인이 스크립트 다음에 블록을로드한다는 것입니다. 따라서 스크립트의 경우 요소가 존재하지 않습니다.

그래서 길을 가야하는 것 같았다 라이브 쿼리 플러그인, 우연히,하지만 여전히 코드에 대한 올바른 논리를 찾을 수 없습니다 : 어떤 도움이 진정으로 이해할 수있을 것이다

$('#fb-user').livequery(function() { 
     if ($("#fb-user").length == 0) { 

     $('#comments textarea').click(function() { 
      $('#comment-user-details').slideDown("slow"); 
     }); 

    } 

합니다.

+0

당신이 * 내부 #의 FB-사용자의 길이 * 클릭 명령을 확인하는 시도? –

+0

지금 당장 시도해 보겠습니다 ... – Gianfranco

+0

예! 그게 효과가 있었어! 나는 공통점을 가지고 "어떻게 도대체 그걸 시도하지 않았 니?"라고 생각해야합니다. – Gianfranco

답변

0

여기에 작업 코드는 다음과 같습니다

$('#comments textarea').click(function() { 
     if ($("#fb-user").length == 0) { 
      $('#comment-user-details').slideDown("slow"); 
     } 
    }); 
관련 문제