jQuery 1.3.2로 업그레이드 한 후 선택기 회귀
-
18-09-2019 - |
문제
최근에 jQuery 1.2에서 1.3.2에서 응용 프로그램을 업그레이드했으며 다소 이상한 회귀를 발견했습니다.
이와 같이 거의 일부 HTML의 경우 (조금 단순화)
<div id="steps">
<div class="step">
<span>step #1</span>
<div class="removeStep"> X </div>
</div>
<div class="step">
<span>step #2</span>
<div class="removeStep"> X </div>
</div>
</div>
우리는 이전에 모든 단계에 대해 SO와 같은 이벤트를 첨부했습니다.
$("#steps").find(".removeStep").click(removeStepFunc)
1.2에서는 모든 단계, 심지어 우리가 동적으로 추가 한 단계를 찾을 수 있습니다. 1.3 미만은이 단계 만 찾습니다.
이것은 또한 작동하지 않습니다.
#("#steps .removeStep").click(removeStepFunc)
그러나 이것은 다음과 같습니다.
#("#steps).children().find(".removeStep").click(removeStepFunc)
나는 분명히 문제를 해결할 수 있지만, 지금 우리가 업그레이드 한 응용 프로그램에 영향을 미치는 다른 유사한 회귀가있을 것이라는 것이 약간 긴장하게 만들어졌다.
또한이 다른 질문을 보았습니다. 같은 문제가 될지도 모른다고 생각합니다.
해결책 2
이제이 게시물을 넘어서서이 문제를 해결했습니다.
http://groups.google.com/group/jquery-en/browse_thread/thread/ae61896a809f6cf0
문제는 jQuery 1.3.2와 호환되지 않는 이전 버전의 JQuery Validator 플러그인 (v1.3)을 사용하여 발생했습니다. 우리는 v1.6으로 업데이트되었으므로 문제가 해결되었습니다.
다른 팁
다음을 시도하십시오.
jQuery('#steps > .removeStep').click(removeStepFunc)
또는
jQuery('#steps .step .removeStep').click(removeStepFunc)
1 단계 X 단계 #2 x업데이트
이와 같은 것은 어떻습니까? (테스트되지 않은) :
jQuery('#steps .removeStep').click( function() {
jQuery(this).remove(jQuery(this).parent());
});
제휴하지 않습니다 StackOverflow