<p ng-repeat="item in list" class="need-another-js"></p>
不用id用class
<script>
$(document).on('click', '.need-another-js', function(){
// do something
});
</script>
虽然我不推荐这种写法,但你既然选择了"命令式"和声明式API混用,想必有你的理由。
补充:
关于angular
AngularJS의 지침은 "선언적" API로서 jquery의 "명령형" API와 매우 다릅니다. 이를 혼합하면 실수하기 쉽습니다. .
기본 상식 오류, id는 요소의 고유성을 나타내는 데 사용되지만 ng-repeat에 사용했기 때문에 여러 개가 있을 수 있습니다. id는 모두 need-another-js입니다. 이는 jquery 또는 angular와 관련이 없습니다. 순전히 html지식 부족
입니다
ng-repeat는 angular에서 제공하는 명령으로 angular의 컴파일을 거쳐야 합니다. 및 연결 프로세스로 인해 $('#need-another-js').click이 #need-another-에 대한 이벤트를 등록할 때 발생합니다. js 요소 당시 이 요소는 angular에 의해 DOM에 실제로 생성되지 않았습니다. 이것이 실패의 핵심입니다.
귀하의 예를 들어 다음과 같이 수정하면 효과적입니다.
으아악
🎜class 대신 id를 사용하세요🎜
으아악
🎜이러한 작성 방식을 권장하지는 않지만 "명령형" API와 선언적 API를 혼합하기로 선택하셨으므로 이유가 있을 것입니다. 🎜
🎜추가됨: 🎜
🎜 angular의 작동 방식과 관련하여 공식 웹사이트에서 다음 소개를 읽으면 이제 막 시작한 학생들에게 도움이 될 것 같습니다. 🎜
🎜🎜🎜🎜🎜
🎜문서 주소: Concepts🎜
ng-repeat는 dom 요소를 동적으로 추가하는 것입니다. click 메서드를 사용하여 동적으로 추가된 요소에 이벤트를 바인딩하면 트리거되지 않습니다. Jquery를 사용하고 싶다면 leftstick에서 제안한 방법을 사용하지만 mumofa에서 제안한 각도 방법을 사용하는 것이 좋습니다
이것은 범위와 관련이 없으며 순전히
jquery
=>angular
의 일반적인 오류 형식입니다.jquery
=>angular
的错误表现形式。AngularJS
的指令,作为一种“声明式”的API,玩法和jquery
那套“命令式”API有很大区别,你在混着用的时候,很容易出错。基本常识错误,
id
是用来表示元素唯一性的,可你用在了ng-repeat
上,也就是说可能出现若干个元素的id
都是need-another-js
,这和jquery
、angular
都没关系,纯粹是html
知识上的缺失ng-repeat
作为angular
提供的指令,需要经过angular
的compile
、linking
过程,导致,当你的$('#need-another-js').click
在为#need-another-js
元素注册事件的时候,这个元素其实还没有被angular
生成到DOM
中,这才是没生效的关键。单就你这个例子来讲,可以做如下修改使之生效:
虽然我不推荐这种写法,但你既然选择了"命令式"和
声明式
API混用,想必有你的理由。补充:
关于
angular
AngularJS
의 지침은 "선언적" API로서jquery
의 "명령형" API와 매우 다릅니다. 이를 혼합하면 실수하기 쉽습니다. .id
는 요소의 고유성을 나타내는 데 사용되지만ng-repeat
에 사용했기 때문에 여러 개가 있을 수 있습니다.id
는 모두need-another-js
입니다. 이는jquery
또는angular
와 관련이 없습니다. 순전히html
지식 부족ng-repeat
는angular
에서 제공하는 명령으로angular
의컴파일
을 거쳐야 합니다. 및연결
프로세스로 인해$('#need-another-js').click
이#need-another-에 대한 이벤트를 등록할 때 발생합니다. js
요소 당시 이 요소는angular
에 의해DOM
에 실제로 생성되지 않았습니다. 이것이 실패의 핵심입니다.귀하의 예를 들어 다음과 같이 수정하면 효과적입니다.
으아악 으아악 🎜이러한 작성 방식을 권장하지는 않지만 "명령형" API와선언적
API를 혼합하기로 선택하셨으므로 이유가 있을 것입니다. 🎜 🎜추가됨: 🎜 🎜angular
의 작동 방식과 관련하여 공식 웹사이트에서 다음 소개를 읽으면 이제 막 시작한 학생들에게 도움이 될 것 같습니다. 🎜 🎜🎜🎜🎜🎜 🎜문서 주소: Concepts🎜으아악
angular에는 ng-click을 지원하는 바인딩 이벤트가 있습니다
이렇게 써보시면 됩니다
으아악Angular를 배울 때 jq에서 angle로 바로 전환했습니다. Angular는 jq가 할 수 있는 모든 것을 할 수 있습니다
ng-repeat는 dom 요소를 동적으로 추가하는 것입니다. click 메서드를 사용하여 동적으로 추가된 요소에 이벤트를 바인딩하면 트리거되지 않습니다. Jquery를 사용하고 싶다면 leftstick에서 제안한 방법을 사용하지만 mumofa에서 제안한 각도 방법을 사용하는 것이 좋습니다