매우 오래된 jQuery (1.2.6, 1.4.3) 버전에서 최신 버전으로 업그레이드하는 중입니다. 버전 (1.9.1). 상황은 꽤 잘 진행되고 있습니다. 마이그레이션 스크립트는 1.6.4에서 1.9.1에 불과하지만 많은 분류 작업을 수행합니다. 분류 작업이 필요한 대부분의 변경 사항이 있다고 생각합니다. 내가 .attr()
에서 .prop()
에 변경되는 주요 하나,하지만로 실행 한 문제의 몇 가지있다jQuery 업그레이드, .attr 및 .prop - 1.2.6 - 1.9.1
- 우리가) (.prop 사용하도록 변경하면 우리의 모든 코드가 .attr()
을 사용하기 때문에 일부 나누기, 특히 상점에서 제품을 필터링하는 데 사용되는 링크 - AJAX 호출을 호출하고 클릭시 다른 처리를 수행합니다.
:
$.fn.attr = $.fn.prop;
나는이가 있지만, 버그의 전체 세계를 소개 확신 초기에 깨진 것을 고쳤다. 그 이후로, 나는 그로 인해 (지금까지 어쨌든) href 속성 (#에서 시작하는 앵커 일 수 있음)이 전체 정규화 된 URL을 반환하도록하는 추가 버그를 발견했습니다. - http://jsfiddle.net/eT6xE/1/
<a href="#something"><span>Product Details</span></a>
<div></div>
$('div').append($('a').attr('href'));
$('div').append('<br />' + $('a').prop('href'));
// #something \n http://fiddle.jshell.net/eT6xE/1/show/#something
내가 알아 차 렸던 유일한 버그 인 것을 감안할 때, 나는 조금 놀아본 후 그것을 해결할 수있는 해결책을 생각해 냈습니다. http://jsfiddle.net/M92CE/1/ - 원래 기능을 다시 도입하는 데 효과가있는 것 같습니다. href attr/prop 문제에 대한 상당히 깨끗한 솔루션 인 것처럼 보이지만 초기 수정 사항이 ... 될 수있는 것보다 훨씬 짧다 고 생각합니다.
이 기능을 다시 도입 할 수있는 "표준"방법이 있습니까? 그렇지 않은 경우 더 좋은 방법이 있습니까?
건배.
나는 함수를 오버라이드하는 것과 비슷한 것을 할 것이지만, 오래된 코드에서 새로운 것으로의 할당을하기보다는 새로운 함수에 위임하고, 어떤 행동 변화를 처리하며, 또한 클라이언트 코드가 이전 접근 방식에서 벗어나도록 deprecation warning (콘솔 사용과 같은) 경고 형식을 던집니다. –