jQuery를 사용하여 패널을 위/아래로 밀어 '단순'및 '고급'검색 패널간에 전환합니다. 슬라이드 후 첫 번째 필드에 입력 포커스를 설정하려고하지만 IE7에서 패널이 공백으로 표시됩니다. FF 3.5.1에서 발생하지 않습니다IE7에서 jQuery를 사용할 때 숨겨진 내용
원본 코드는 ASP.NET을 사용하지만 아래 간단한 HTML 및 JavaScript로 복제 할 수 있습니다. 내 첫 번째 시도는 div가 아닌 테이블을 기반으로했지만 동일한 문제가 발생했습니다.
나는 peekaboo 버그일지도 모른다고 생각했지만 제안 된 수정 사항 (위치 : 상대적, 확대/축소 : 1)을 시도했지만 운이 없었습니다.
데모 페이지가 열리면 간단한 검색 div가 표시됩니다. '고급'버튼을 클릭하면 고급 패널이 아래로 슬라이드되지만 숨겨집니다. 창 크기를 조정하면 다시 표시됩니다. focus()에 대한 jquery() 호출을 제거하면 문제가 해결됩니다. 이 라인에
$("#advSearchPanel").slideDown(500, function() {
:
$(document).ready(function() {
$("#btnSwitchAdvanced").click(function() {
$("#simpleSearchPanel").slideUp(200, function() {
$("#advSearchPanel").slideDown(500, function() {
$("#txtASDescription").focus();
});
});
});
$("#btnSwitchSimple").click(function() {
$("#advSearchPanel").slideUp(200, function() {
$("#simpleSearchPanel").slideDown(500, function() {
$("#txtSimpleSearch").focus();
});
});
});
$("#advSearchPanel").hide();
});
.criteriaRow
{
clear:both;
}
.criteriaLabel
{
float:left;
width:200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="searchPanel" style="background-color: #dcdcdc; margin-top: 5px;">
<div id="searchCriteria">
<div id="simpleSearchPanel">
<span>Simple Search</span>
<input type="text" id="txtSimpleSearch" />
<input type="button" id="btnSwitchAdvanced" value="Switch to Advanced" />
</div>
<div id="advSearchPanel">
<span>Advanded Search</span>
<div>
<div class="criteriaRow">
<div class="criteriaLabel">
<span id="lblASDescription">Description:</span>
</div>
<div class="criteriaInput">
<input type="text" id="txtASDescription" />
</div>
</div>
<div class="criteriaRow">
<div class="criteriaLabel">
<span id="lblASId">Id:</span>
</div>
<div class="criteriaInput">
<input name="txtASId" type="text" id="txtASId" />
</div>
</div>
</div>
<div>
<div id="criteriaActions" style="float:left;">
<input type="button" id="btnSwitchSimple" value="Switch To Simple" />
</div>
</div>
</div>
</div>
</div>
PS : http://api.jquery.com/jQuery.browser/
을 다른 방법으로, 블록 내부의 코드를 사용하여 같은 너무 유용 할 수 있습니다 다음 난 있지만 비교적 멍청한 놈이라면 google의 CDN jquery에 대한 전체 경로를 사용하는 것을 고려해 볼 수 있습니다. 코드를 복사하여 붙여 넣으면 즉시 사용할 수 있습니다. – Matrym
문제를 해결하지 못하기 때문에이 답에 -1을 붙이고 있습니다. SLIDE 기능을 SHOW/HIDE로 변경합니다. 그 사람은 SLIDE가 제대로 작동하도록 분명히 요구하고 있습니다. – Joshua
@ Josh : 다음에 질문에 정보를 추가하지 않도록 상기시켜주십시오. – Matrym