많은 답변이 있으며 각각 몇 가지 요점을 다룹니다. 이것이 무엇이고 어떻게 사용하는지에 대한 좋은 설명과 함께 귀하의 답변을 제공 할 수 있기를 바랍니다.
을 사용하는 click()것은의 별칭 bind('click' ...)입니다. 를 사용 bind()하면 이벤트 리스너가 설정 될 때 DOM을 그대로 사용 하고 DOM에서 일치하는 각 요소에 함수를 바인딩합니다. 즉, 사용 $('a').click(...)하면 해당 코드가 실행될 때 찾은 DOM의 모든 앵커 태그의 클릭 이벤트에 제공된 함수를 바인딩하게됩니다.
사용 live()은 jQuery에서 옛날 방식이었습니다. 이벤트를 바인딩하는 데 사용 된 것처럼 bind()코드가 실행될 때 DOM의 요소에 바인딩하는 것이 아니라 DOM의 변경 사항을 수신하고 이벤트를 향후 일치하는 요소에도 바인딩합니다. 이는 DOM 조작을 수행하고 나중에 제거 / 업데이트 / 추가 될 수 있지만 DOM이 처음로드 될 때 존재하지 않는 일부 요소에 이벤트가 있어야하는 경우에 유용합니다.
live()현재 감가 상각 된 이유 는 제대로 구현되지 않았기 때문입니다. 를 사용 live()하려면 처음에 DOM에서 하나 이상의 요소를 선택할 수 있어야했습니다 (내 생각에). 또한 함수 복사본이 각 요소에 바인딩되도록 실행되었습니다. 1000 개의 요소가있는 경우 많은 복사 된 함수입니다.
on()기능 의 생성은 이러한 문제를 극복하는 것이 었습니다. 단일 이벤트 리스너를 DOM에서 변경되지 않는 객체에 바인딩 할 수 있습니다 (따라서 on()나중에 DOM에서 제거 / 추가 될 요소 에는 사용할 수 없습니다 -부모 객체에 바인딩). 선택자와 일치하는 요소로 버블 링 될 때만 함수가 실행되도록하는 요소 "필터". 즉, 단일 요소에 바인딩 된 하나의 함수 (복사본이 아님) 만 있음을 의미합니다. DOM에 "라이브"이벤트를 추가하는 훨씬 더 나은 접근 방식입니다.
... 그것이 차이점이며 각 기능이 존재하는 이유 live()와 감가 상각 이유 입니다.
on로click인해click그것이 무엇을하는 것은 동사, 동작, 등의 함수 이름을 소리 하지 (당신은 또한 동일로 할 수있는 같은 요소를 클릭하는click기능)