>  기사  >  웹 프론트엔드  >  jQuery 1.9 이상 버전에서 라이브가 삭제된 후 대체 방법에 대한 자세한 소개

jQuery 1.9 이상 버전에서 라이브가 삭제된 후 대체 방법에 대한 자세한 소개

黄舟
黄舟원래의
2017-06-26 09:31:541269검색

jQuery의 공식 설명에 따르면 라이브 방식은 1.7에서 더 이상 권장되지 않으며, 이 방식은 1.9에서 삭제되었습니다. 그리고 향후 코드에서는 대신 on 메소드를 사용하는 것이 좋습니다.
 on 메소드는 event이름, 트리거 선택기, 이벤트 함수라는 세 가지 매개변수를 받을 수 있습니다.

특별히 주의해야 할 점은 on 메소드 중간에 있는 트리거 선택기가 추가하려는 HTML 요소의 클래스 이름, ID 또는 요소 이름을 사용하여 라이브 효과를 얻는 것입니다.

예를 들어, 내 html 문서에 ID가 부모인 p가 이미 있습니다. 이 p 안에 son 클래스가 포함된 범위를 동적으로 추가한 다음 이 범위에 이벤트를 바인딩합니다. 다음과 같이 작성해야 합니다:

$('#parent').on('click','.son',function(){alert('test')});

이 트리거 선택기는 실제로 JQ 내에서 이벤트 매개변수를 결정하는 $(e.target).is(selector)입니다. 트리거 개체와 일치하는 트리거만 트리거됩니다. . 이는 이벤트 버블링 메커니즘을 사용하여 수행됩니다. 원래 라이브도 버블링 메커니즘을 사용하므로 on을 구현할 수 있으므로 1.7에서 1.9까지 살아남은 것은 라이브가 존재할 필요가 없습니다.
 이 기사에는 내용이 많지 않습니다. 이 기능을 사용하여 의미 있는 작업을 수행해 보겠습니다. IE 하위 버전에서는 마우스를 눌렀을 때 A 태그에 점선 테두리가 표시됩니다. 글로벌 이벤트에서 뭔가를 한다면 이 문제를 해결할 수 있습니다. 포커스는 최신 브라우저에서는 버블링되지 않지만 이전 브라우저에서는 버블링될 수 있습니다. 따라서 하위 버전의 브라우저에서는 라이브 포커스를 사용하는 것이 효과적입니다. jQuery 1.9 이전 버전에서는 다음과 같이 작성할 수 있습니다.

$("a").live("focus",function(){  this.blur();
});

jQuery 1.9 이후에는 live가 삭제되었으므로 다음과 같이 작성해야 합니다.

$(document).on("focus","a",function(){  this.blur();
});

변경할 경우 주의해야 할 문제도 있습니다. 라이브 작성 방법에서 작성 시 호출 체인을 조정하는 것을 잊지 마세요. live의 반환 값은 이벤트에 의해 트리거된 개체이고 on을 사용하는 것은 컨테이너 개체에 있기 때문입니다.

//jQuery1.9-$("#panel").find("p").live("click",function(){
  alert("x");
}).addClass("x");//jQuery1.9+$("#panel").on("click","p",function(){
  alert("x");
}).find("p").addClass("x");   

마지막에 있는 find("p")에 주의하세요. 그렇지 않으면 문제가 없습니다.

위 내용은 jQuery 1.9 이상 버전에서 라이브가 삭제된 후 대체 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.