2012-01-26 3 views
0
$(document).ready(function() { 
$('#username_input').live("focus", function() { 
      $('.user-available-info').hide(); 
      $('.user-available-error').hide(); 
      $('.login-error').hide(); 
    }); 
    $('#password_input').live("focus", function() { 
      $('.login-error').hide(); 
      $('#login-username-invalid').hide(); 
      $('#login-username-error').hide(); 
     }); 
    This is the xhtml page 
    <h:panelGroup id="login-username-invalid" > 
    <div id="login-username-invalid-error">  
       <div class="login-error"> 
        <div class="login-error-top"></div> 
        <div class="login-error-middle"> 

    <p class="error"> 
    "message to be displayed in the bubble"</P> 

사용자가 잘못된 사용자 이름이나 비밀번호를 입력하면 오류 풍선이 튀어 나오는 응용 프로그램에서 로그인 페이지가 나타납니다. 우리는 사용자가 page.It에서 어디서나 클릭하면 버블이 닫히는 요구 사항을 갖습니다. 위의 코드에 나열된대로 .hide를 부여한 것처럼 사용자 이름과 비밀번호 입력 필드 모두에서 잘 작동합니다.하지만 나는 입력란 ID를 '본문'으로 입력하면 페이지 전체에서 작동합니다. 그러나 작동하지 않습니다. 클릭하여 시도했는데 둘 중 아무 것도 작동하지 않았습니다. 어떤 해결책이 있습니까? 있습니다. 미리 감사드립니다.페이지를 클릭하면 버블이 닫힙니다.

답변

2

몸에 클릭에 바인드 초점이 아니라 :.. http://jsfiddle.net/brentmn/QDjSV/1/

$('body').on('focus', function(){ 
    alert('body does not recieve focus'); 
}); 
$('body').on('click', function(){ 
    alert('body does recieve click'); 
}); 
+0

그래서 $ ('몸')에 ('클릭'기능() { $은 ('. bubbleclass') 숨기기();}); 이 작업을 올바르게 수행 할 것입니다. 페이지 오른쪽의 아무 곳이나 클릭하면 풍선을 숨 깁니다. – user1046671

+0

예. 조심해야 할 두 가지. html과 body는 CSS 높이와 너비가 100 %이어야합니다. 또한 사용자가 버블 자체를 클릭하는 경우도 처리해야합니다. $ ('. bubbleclass'). on ('click', function() {return false;}); 그렇지 않으면 클릭이 몸체에 '거품'을 일으키고 '거품'을 닫습니다. –

+0

브렌트에게 감사드립니다. – user1046671

관련 문제