2012-06-14 4 views
2

샘플 내가 무엇에 대해 이야기하고있다 :. 당신이 소스를 선택하면 http://jsfiddle.net/bsnxp/1/.show() 클론() HTML .clone 다른() 쇼()의

.show().clone()display입니다 inline-block (그것이 있어야하는 것) .clone().show()display: block입니다 (정답은 아님).

jQuery를 .show 설명서는 (http://api.jquery.com/show/) "이 디스플레이 속성은 처음이었다 무엇에 복원하는 것을 제외하고 .css('display', 'block')를 호출 거의 비슷하다"말했다.

원래 CSS 표시 속성이 복제에서 메모리에서 제거되는 이유가 있습니까? .show(). clone(), .hide()를 사용하는 것보다 이것을 우회하는 더 좋은 방법이 있습니까?

답변

1

.clone 아무런 인수도없이 요소의 데이터를 복사하지 않습니다.이 데이터에는 처음 디스플레이가 무엇인지에 대한 정보가 들어 있습니다.

.clone(true)을 사용하여 데이터를 복제하십시오. .clone()http://api.jquery.com/clone/

+0

그 인수에 대한

문서는 그가 언급 한 것에 대한'withDataAndEvents' (이벤트 및 데이터) 및 없습니다. –

+0

@Vega jQuery는'.data ("olddisplay")'에 초기 표시 값을 저장합니다. 이는'.clone()'을 할 때 복제되지 않습니다. 편집 : 분명히 jQuery 내부입니다. 그러나 당신은'jQuery.cache'에서 그것을 볼 수 있습니다 : http://jsfiddle.net/bsnxp/3/ – Esailija

+0

@Vega 저는 그가 맞다고 생각합니다. 만약 당신이 데이터를 복사하지 않는다면 어떻게 jQuery가 무엇을 계산할 것인가? 디스플레이 상태는 처음에는 무엇입니까? –