Web应用程序的事件监听器最佳实践

时间:2014-05-16 13:44:31

标签: javascript web-applications event-listener

我正在制作一个网络应用,我的javascript正在收集相当多的$(文档).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 个答案:

答案 0 :(得分:1)

我发现$('#button').click(function(){})的快捷方式比较整洁。

此外,您的前两个事件处理程序非常相似,可以更通用,即将操作作为变量传递:

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