2014-05-16 6 views
0

웹 응용 프로그램을 만들고 있는데 자바 스크립트는 많은 $ (document) .on 이벤트 수신기를 수집하고 있습니다. 그것은 나를 위해 충분히 잘 작동하고 있지만, 그것을 구성하는 더 좋은 방법이 있어야만하는 것처럼 느껴집니다. 여기에 샘플이 있습니다 :이벤트 리스너 웹 응용 프로그램 모범 사례

// send quiz info via Ajax, then load form for the first question. 
    $(document).on('click', '#create-new-quiz', function(){ 
     createNewQuiz(); 
     $('#forms').load("dash/workspace.php", { 
      action : 'get-new-question' 
     }); 
    }); 

    // load the form to create the first question 
    $(document).on('click', '#finish-quiz', function(){ 
     addQuestion(); 
     $('#forms').load("dash/workspace.php",{ 
      action : 'finish-quiz' 
     }); 
    }); 

    //call function to add a new question via ajax when the button is clicked. 
    $(document).on('click', '#add-question', function(){ 
     nextAction = "add-question"; 
     addQuestion(); 
    }); 

나는 다양한 버튼이 동적으로 추가되고 DOM에서 제거되었음을 보여줍니다. 클릭하면 함수가 호출됩니다.

제안 사항? 이미 올바른 길을 가고 있습니까? 아니면 이것을 구성하는 더 좋은 방법이 있습니까?

답변

1

$('#button').click(function(){}) 바로 가기가 좀 더 세련된 것 같습니다.

또한, 첫 번째 두 개의 이벤트 핸들러는 상당히 유사하며 좀 더 일반적인 예는 변수로 작용 통과 할 수있다 :

$('.quizButton').click(function(e){ 
    createNewQuiz(); 
    $('#forms').load("dash/workspace.php", { 
     action : $('this').data('action'); 
    }); 
}); 
+0

나는 .click() 형식을 시도했다, 그러나 그것은 '년후 일하고있어. 페이지가로드 될 때 버튼이 모두 표시되지 않기 때문이라고 생각합니다. $ (document)로 변경하면 해결됩니다. .load() 호출에 데이터 태그를 사용할 것을 제안합니다. 감사! – Mandu

관련 문제