답변:
.live()
는 버전 1.9부터 제거되었습니다.즉, 1.8 이전 버전에서 업그레이드하는 경우 아래 마이그레이션 가이드를 따르지 않으면 문제가 발생합니다. 당신은 단순히 대체 안 .live()
와 .on()
!
들어 빠른 / 핫픽스 라이브 사이트에 없는 단지 키워드 교체 live
로를 on
,
로 매개 변수가 다르다 !
.live(events, function)
에 매핑해야합니다 :
.on(eventType, selector, function)
(자식) 선택기는 매우 중요합니다! 어떤 이유로 든 이것을 사용할 필요가 없으면로 설정하십시오 null
.
전에:
$('#mainmenu a').live('click', function)
그런 다음 자식 요소 ( a
)를 .on()
선택기 로 이동합니다 .
$('#mainmenu').on('click', 'a', function)
전에:
$('.myButton').live('click', function)
그런 다음 요소 ( .myButton
)를 .on()
선택기 로 이동하고 가장 가까운 상위 요소 (바람직하게는 ID가있는)를 찾습니다.
$('#parentElement').on('click', '.myButton', function)
부모로서 무엇을 넣을지 모르는 경우 body
항상 작동합니다.
$('body').on('click', '.myButton', function)
다음 JavaScript 코드를 포함시켜 코드 리팩토링을 피할 수 있습니다
jQuery.fn.extend({
live: function (event, callback) {
if (this.selector) {
jQuery(document).on(event, this.selector, callback);
}
return this;
}
});
jQuery API 문서는 live()
버전 1.7에서 사용되지 않으며 버전 1.9에서 제거 된 것으로 표시됩니다. link) .
더 이상 사용되지 않는 버전 : 1.7, 제거 된 버전 : 1.9
또한 다음과 같이 말합니다.
jQuery 1.7부터 .live () 메소드는 더 이상 사용되지 않습니다. 사용 ) (CSTE 연구진은 이벤트 핸들러를 첨부 할 수 있습니다. 이전 버전의 jQuery 사용자는 .live ()보다 .delegate () 를 사용해야 합니다.
.live()
jQuery 에 대한 포워드 포트 > = 1.9 JS 의존성을 리팩토링하지 않도록 .live()
최적화 된 DOM 선택기 컨텍스트 사용
/**
* Forward port jQuery.live()
* Wrapper for newer jQuery.on()
* Uses optimized selector context
* Only add if live() not already existing.
*/
if (typeof jQuery.fn.live == 'undefined' || !(jQuery.isFunction(jQuery.fn.live))) {
jQuery.fn.extend({
live: function (event, callback) {
if (this.selector) {
jQuery(document).on(event, this.selector, callback);
}
}
});
}
.live는 1.9에서 제거되었습니다. 업그레이드 가이드를 참조하십시오 : http://jquery.com/upgrade-guide/1.9/#live-removed
코드를 변경할 필요가없는 매우 간단한 수정, jquery 마이그레이션 스크립트 추가, 여기 다운로드 https://github.com/jquery/jquery-migrate/
더 이상 사용되지 않지만 "live", "browser"등과 같은 기능이 필요한 jquery를 제공합니다.
필요하지 않은 경우 .on () 구문을 사용하지 않는 경향이 있습니다. 예를 들어 다음과 같이 쉽게 마이그레이션 할 수 있습니다.
낡은:
$('.myButton').live('click', function);
새로운:
$('.myButton').click(function)
유효한 이벤트 처리기 목록은 다음과 같습니다. https://api.jquery.com/category/forms/
return this;
연쇄 능력을 유지하기 위해 함수의 끝에 a 를 포함해야합니다