>  기사  >  웹 프론트엔드  >  위임 대신 on을 사용하는 것과 jQuery에서 live를 사용하는 것의 차이점에 대한 자세한 설명

위임 대신 on을 사용하는 것과 jQuery에서 live를 사용하는 것의 차이점에 대한 자세한 설명

黄舟
黄舟원래의
2017-06-26 10:04:221189검색

초창기에는 나중에 페이지에 로드되는 동적 요소에 events나 값을 할당할 때 효율성이 낮아서 라이브를 사용했습니다(사실 데이터가 많지 않아 눈에 띄지 않았습니다). 나중에 델리게이트 대신에 델리게이트가 사용되었습니다. 라이브와 델리게이트 모두 새 버전에서 사용할 수 있습니다. 그렇지 않으면 혼동되기 쉽습니다. 잠시 쓰다가 메모를 적으세요. 예를 들어 p에서 아무거나 클릭하세요. 버튼이 있을 때 새 버튼 추가:


<div id="panel">   
      <input type="button" name="name"  value="clone"class="btnAdd" />
</div>

Script:

1.1 livejQuery

version 1.3+

$(&#39;.btnAdd&#39;).live(&#39;click&#39;, function () {
    $(this).clone().appendTo(&#39;#panel&#39;);
});
1.2 Live 직접 #panel 등의 범위를 지정하지 않고 on으로 변경하면 처음에 페이지에 있던

버튼

에 효과적입니다. 즉, 라이브를 직접 대체할 수 없습니다

$(&#39;.btnAdd&#39;).on(&#39;click&#39;, function () {    
$(this).clone().appendTo(&#39;#panel&#39;);
});
2. 위임을 사용하려면 #panel과 같은 범위만 작동하므로 내부에서 검색하도록 하면 됩니다.


jQuery 버전 1.4.3+

$(&#39;#panel&#39;).delegate(&#39;.btnAdd&#39;, &#39;click&#39;, function () {
    $(this).clone().appendTo(&#39;#panel&#39;);
});

3.使用on 给它一个范围才行,如#panel,让它到里面找. 这样可以实现live和delegate一样的效果.

里面的'click', '.btnAdd'跟上面的delegate是相反的.只要记住on click是挨在一起的就行了.

jQuery版本1.7+

$(&#39;#panel&#39;).on(&#39;click&#39;, &#39;.btnAdd&#39;, function () {
    $(this).clone().appendTo(&#39;#panel&#39;);
});

위 내용은 위임 대신 on을 사용하는 것과 jQuery에서 live를 사용하는 것의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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