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

标签 javascript web-applications event-listener

我正在制作一个网络应用程序,我的 javascript 正在收集相当多的 $(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 动态添加和删除的按钮。单击它们时,将调用一个函数。

有什么建议吗?我是否已经走在正确的道路上,或者有更好的方法来组织这个?

最佳答案

我发现 $('#button').click(function(){}) 快捷方式更加简洁。

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

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

关于javascript - Web 应用程序的事件监听器最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23696751/

相关文章:

javascript - Firebase 将集合作为数组返回

java - 如何使用 JSF 获取用户的浏览器 ID?

Java 网络应用程序

php - Symfony2 - 数据库级别 onDelete Cascade 不会触发生命周期事件

javascript - 从javascript中的数组对象获取数据

javascript - Angular 指令将变量解析为函数

facebook - Edge Side Includes (ESI) 与 Facebook 的 BigPipe 类似吗?

javascript - 附加监听器不应监听复选框旁边的标签

JavaScript:带有回调和参数的事件监听器

javascript - Phonegap pictureSource.PHOTOLIBRARY 不适用于 Angular