>source

JS에 콜백을 중첩하는 대신 사용자 정의 이벤트를 실행하고 수신 대기하고 싶습니다. DOM이 필요하지 않거나 액세스하고 싶지 않습니다. 다음은 예입니다.

function doSomething(){
//...
$.trigger('finished-doSomething'); //fire the event 'finished-doSomething'
}
//when the event 'finished-doSomething' is fired -> execute the function in the second  param
$.live('finished-doSomething', function(){
   alert("I finished-doSomething");
});

일반 JavaScript code나 jQuery와 같은 라이브러리로 그렇게 할 수 있습니까? 그렇지 않다면 중첩된 콜백을 피하기 위한 좋은 접근 방식은 무엇입니까?

  • 답변 # 1

    $('#foo').on('custom', function(event, param1, param2) {
      alert(param1 + "\n" + param2);
    });
    $('#foo').trigger('custom', ['Custom', 'Event']);
    

    출처: http://api.jquery.com/trigger/

  • 답변 # 2

    글쎄요, 몇 가지 공통 요소에 대해 사용자 정의 이벤트를 사용할 수 있습니다.문서.본문.

    //Subscribe
    $(document.body).on('nifty.event', function() {
        //Handle it
    });
    //Publish
    $(document.body).trigger('nifty.event');
    

    무료 라이브 예제| 원천

    또는 DOM과의 완전한 연결을 해제하기 위해 몇 가지 pub/sub jQuery 플러그인이 있습니다. 이 같은.

  • 이전 python : 여러 이미지에서 이미지 분류를 실행하는 방법은 무엇입니까?
  • 다음 jquery : 제이쿼리 유효성 검사