詳細検索

jQuery 1.9의 사양 변경으로 인해 많은 플러그인이 멈추는 경우가 많습니다

아바타
글쓴이 maeno
4분 읽기
태그 jquery

jQuery 1.9의 사양 변경으로 인해 많은 플러그인이 멈추는 경우가 많습니다
日本語에서 번역 • 원문 보기

코드 { 패딩: 2px; 배경색: #f4f4f4; 색상: #7f0055; 글꼴 굵기: 굵기; 테두리: 실색 1px #ddd; } 블록 인용 { 여백 왼쪽: 1em; 글꼴 크기: 12px; 줄 높이: 17px; 배경색: #fdfdfd; 테두리: 단색 1px #ccc; 패딩: 4px; 글꼴 스타일: normal; }

저는 현재 최신 jQuery 1.9.1로 시스템을 개발 중이었고, 지난달 개발 중이던 시스템에서 실행되던 jQuery 플러그인에 중독되어 있었는데, 그 플러그인이 작동하지 않았습니다. 그것은 WordPress 코어에 포함된 'thickbox'였는데, 왜 관리자 패널에서는 작동하는데 테마 쪽에서는 안 되는지 궁금했습니다. 찾아보니 제가 로드하던 코어의 jQuery 버전이 1.8과 1.9 버전이라는 차이가 있었습니다. jQuery 1.9 시리즈의 사양 변경 사항을 찾아보니, 지금까지 꽤 유용했던 방법이 사라진 것을 발견했습니다.
나중에 삭제될 거라는 걸 알았지만, 사용하기 쉬워서 '$.browser()'를 썼고, '$.live()'도 썼는데, '$.bind()'보다 더 다재다능해서 동적으로 생성된 DOM 객체 등에 덜 적응적이어서 이런 메서드를 사용하는 jQuery 플러그인들이 오류를 일으키기 시작했습니다.
이와 관련해 jQuery 1.9의 주요 사양 변경 사항을 요약했습니다.

  1. '$.browser()'는 1.3 폐지부터 지원되지 않게 지정되었지만, 결국 삭제되었습니다... 브라우저를 쉽게 판단할 수 있어서 사용하기 쉬웠지만, 어쩔 수 없습니다. 앞으로는 '$.support()'를 사용해 판단 공식을 설정해야 합니다.

  2. '$.live()'는 더 이상 지원되지 않습니다

'$.bind()'의 확장 버전인 바인드는 jQuery나 JavaScript에서 동적으로 생성된 객체에 처리를 바인딩할 수 있는 방법입니다. 이 방법은 사용하기 쉬워서 유용했지만, 현재는 중단되었습니다. 이제부터는 '$.on()'과 '$.off()'를 사용할 수 있습니다. 이 방법은 확실히 더 똑똑합니다. 바인드 이벤트의 켜짐/끄기를 이해하기 쉽게 제어할 수 있기 때문입니다.

  1. '$.die()'는 더 이상 지원되지 않습니다

이 방법은 위의 라이브 함수를 삭제하는 방법입니다. 라이브 함수가 없다면 이 방법도 불필요합니다.

  1. '$.sub()'는 더 이상 지원되지 않습니다

이 메서드는 속성과 메서드를 자유롭게 변경할 수 있는 핵심 jQuery 객체의 복사본을 생성하는 방법입니다. 플러그인 개발에서는 코어를 변경하지 않고 jQuery 코어를 독립적으로 확장하는 데 사용되었지만, 거대한 jQuery 코어를 복사해 메모리를 차지하는 플러그인이 없기로 결정했을 수도 있습니다. 이 메서드는 플러그인 개발자 외에는 거의 사용하지 않는 방법이고, 1.8 시리즈부터 이 메서드가 플러그인되어 폐지의 영향은 적은 것 같습니다.

  1. '$.toggle(fn1(), fn2(),[... fnN()의 폐기됨"'

이 방법은 1.7 시리즈에서 더 이상 지원되지 않았습니다. 지정된 객체를 클릭할 때마다 fn1, fn2, fnN 같은 함수를 실행하고, fnN 후에는 fn1로 돌아올 수 있는 메서드였습니다. 그렇다면 클릭할 때마다 처리를 그렇게 많이 바꿔야 하는 UI는 어떨까요? 그래서 이 방식을 폐지하는 것이 적절한지 궁금합니다... 참고로, 함수 바운드 타입이 아닌 이벤트 효과 타입인 '$.toggle()'은 아직 폐지되지 않았습니다.

  1. 설명 순서와 처리 내용이 변경된 기타 방법들

'$.add()', '$.before()', '$.after()', '$.addSelf()' 등 여러 세부 사항이 바뀐 것으로 보입니다.

2013년 2월 12일 기준으로 jQuery 최신 버전은 1.9.1이지만, 기존 jQuery 플러그인과 라이브러리를 사용할 경우 1.8 버전에서 그대로 두지 않는 이상 작동하지 않는 부분이 많을 것으로 예상됩니다. jQuery는 1.8 이하와 1.9 이후에는 별도의 항목으로 인식하는 것이 더 나을 수 있습니다.

Related Articles