시나리오 : jQuery를 사용하면 특정 이벤트에 대해 여러 바인드가 수행됩니다. 이벤트가 발생하면 지정된 기능이 PER 트리거 후에 실행됩니다.jQuery 트리거가 한 번만 작동합니다.
챌린지 : jQuery 트리거가 작동하는 방식은 트리거가 호출 될 때 연결된 함수가 해당 이벤트의 바인드 수와 같은 횟수만큼 실행된다는 것입니다. 각 트리거에서 함수는 한 번만 실행해야합니다. 이것이 어떻게 달성 될 수 있는가. 이벤트가 트리거 될 때마다 함수가 실행되어야하기 때문에 "one"은 시나리오에서 작동하지 않습니다.
미리 감사드립니다.
업데이트 : 더 구체적인 것은 아닙니다.
페이지로드시 사용자 정의 이벤트가 발생할 때 페이지의 다른 요소가 등록되므로 요구 사항은 참여할 것입니다.
사용자 지정 이벤트가 트리거되거나 발생하면 등록 된 모든 요소에 대해 일부 작업을 수행하는 함수가 호출됩니다.
예 : 다른 부분 뷰 (MVC)에서 포함 된 요소입니다. 준비 문서에
<html>
<a href="#" id="triggerelement">Trigger element</a>
<div id="element1" data-join="aevent">something 1</div>
<div id="element2" data-join="aevent">something 2</div>
<div id="element3" data-join="aevent">something 3</div>
<div id="element4" data-join="aevent">something 4</div>
</html>
- - "데이터 결합"을 모든 요소 이벤트 "aevent"에 결합합니다.
- 트리거 ("aevent")가 호출되면 바인딩 함수는 "aevent"에 참여해야하는 모든 요소를 수집하고 이에 대한 조작을 수행해야합니다. 내가으로 실행하고
두 가지 문제 :
어떤 요소에 "바인딩"에 - $ 바인딩 (?).. 이유 : 여러 요소가이 사용자 지정 이벤트를 발생시킬 수 있으며 이벤트를 발생시키는 요소를 알 수 있거나 알려서는 안됩니다. 한 가지 생각은 - $ (document) .bind/$ (document) .trigger였습니다. 이것이 최선의 접근 방법입니까? $(). 트리거가 나는 단지 번 호출 당보다는 해당 이벤트에 바인딩 된 각 요소에 대해 관련 함수를 호출하도록 할 수 있습니다 방법을 호출 할 때 jQuery를 사용
.
여러 번 바인딩을 중지 하시겠습니까? 또는'var myTrigger = function() {}'을 사용하고'event + = myTrigger'를 한 번 바인드합니까? (또는 내가 잘못 이해하고 있는가?) "다중"바인딩을 "필터링"하는 "프록시"처리기를 바인딩 할 수도 있습니다. –
은 맞춤 이벤트로 당신을위한 솔루션입니까? – voigtan