2012-01-01 2 views
1
나는 파이어 폭스와 jQuery를 사용하고있어

는 :JQuery와 숨기기() 행동

다음 코드는 간단하게 내용을 숨 깁니다,하지만 내용이 다시 나타납니다 :

$("#calorielink").click(function() { 
       $("#A").hide(); 
       $("#B").hide(); 
      }); 

다음 코드는 제대로 내용을 숨 깁니다

$("#calorielink").click(function() { 
       $("#A").hide(); 
       $("#B").hide(); 
       return false; 
      }); 

왜 return 문이 효과가 있습니까?

답변

3

return false 이벤트 처리기에서 당신을 위해 다음과 같은 일을 : 이벤트의

  • 방지의 기본 동작을. #calorieLinka이라고 가정하면 사용자가 새 페이지로 연결되지 않음을 의미합니다.
  • 이벤트 전파를 중지합니다. 이 이벤트는 DOM을 버블 링하지 않습니다. 즉,이 요소의 "업스트림"요소에 연결된 이벤트 처리기가있는 경우 이벤트에 대한 알림을받지 못합니다.
  • 콜백 함수에서 즉시 반환됩니다.

    $("#calorielink").click(function(event) { 
        event.preventDefault(); // Prevent the default action from occurring. 
        $("#A").hide(); 
        $("#B").hide(); 
    }); 
    

    나는 일반적으로 이벤트 핸들러에 return false을 사용하여에 추천 할 것입니다 :

보통, 당신은 단지 첫 번째를 (당신은 단지 기본 동작을 방지하기 위해 필요)합니다. 당신이 당신의 이벤트 처리기에서 발생하려면, 당신은 return false이 수행하는 일의 양을 필요로 할 경우에도, 그것을 쓰기 위해 더 많은 표현 기능에 대한 생각 :

event.preventDefault(); 
event.stopPropagation(); 

Here'sreturn false이 실제로 무엇을하고 있는지에 대한 좋은 읽기.

하지return false 포함 또는뿐만 아니라 발생 이벤트의 기본 동작을 실행하는 코드를 야기 할 이벤트의 기본 동작 (event.preventDefault())를 중지. 이것은 아마도 코드가 빠르게 실행되고 그 다음에 효과가 사라지는 것을 보는 이유 일 것입니다.

+0

이것은 정확하게 그게 - 감사합니다! – sdasdadas

+0

@sdasdadas : 문제 없습니다! 기꺼이 도와주세요. –

1

false을 반환하면 브라우저에서 href 속성으로 설정된 URL을로드하지 못하도록합니다 (<a> 요소).

필자는 요소가 페이지 자체에 연결되어 페이지를 다시로드한다고 생각합니다.