2011-01-06 3 views
0

나는, jQuery의 방법 뒤로 버튼이 내 페이지로 반환하는 데 사용됩니다jQuery의 hide()와 .css ('display', 'none')의 차이점은 무엇입니까?

element.hide(); 

에 CSS 스타일의 호텔

element.style.display = "none"; 

을 설정 일반적인 자바 스크립트를 사용하는 요소를 몇 페이지를 변경 한 그 jQuery를 사용하여 숨겨져 있지 않습니다. 원시 자바 스크립트를 사용하여 디스플레이를 설정하면 숨겨진 요소가 페이지로 돌아 가면 숨겨집니다.

동일한 방법으로 jQuery의 hide() 기능을 사용할 수있는 해결 방법이 있습니까?

답변

9

jQuery의 hide 방법은

 for (i = 0; i < j; i++) { 
      this[i].style.display = "none"; 
     } 

당신은 몇 가지 다른 문제가 수행한다.
.hide() 디스플레이 속성 값을 호출 이 .show()가 호출 그래서 때, jQuery의 데이터 캐시에 저장되어, 초기 표시 값 :

전체 방법은 큰 차이가 있습니다

hide: function(speed, easing, callback) { 
    if (speed || speed === 0) { 
     return this.animate(genFx("hide", 3), speed, easing, callback); 

    } else { 
     for (var i = 0, j = this.length; i < j; i++) { 
      var display = jQuery.css(this[i], "display"); 

      if (display !== "none") { 
       jQuery.data(this[i], "olddisplay", display); 
      } 
     } 

     // Set the display of the elements in a second loop 
     // to avoid the constant reflow 
     for (i = 0; i < j; i++) { 
      this[i].style.display = "none"; 
     } 

     return this; 
    } 
}, 
+0

절대적으로 ... 거기에 중첩 된 또 다른 방법으로 display 속성을 '캐시에 저장'했습니다. 감사! –

0

동일합니다. jQuery hide는 디스플레이를 적용합니다 : none; 요소에. 당신의 숨기기를 촉발시키는 것은 무엇입니까? 그것은 document.ready에 있습니까 ?? 그것은 당신이 '다시'자바 스크립트를 실행하지 않는 때와 같은 것 같습니다.

3

입니다 복원되었습니다!

관련 문제