jQuery在哪里放置dom交互



我已经读了很多关于堆栈溢出的问题,但是我的问题没有答案。

我在一个有很多javascript交互的大网站上工作。最后,我想要一个文件与所有的代码合并。问题是我应该在哪里写这样的代码

$('#changeMailForm').submit(/*some code here*/) // or
$('#loginForm').submit()

除了用户登录之外,每个页面上都有loginform。如果用户登录了js代码在文件中,它尝试绑定提交事件。我的js应用程序的结构是:

(function(init){
    init(window.jQuery, window, document);
}(function($, window, document) {
    $(function() {
        //dom ready
    });
    // Classes, etc.
}));

我是否应该写下每个事件,而不关心它是否在dom中,或者我是否应该检查它是否存在或其他完全不同的东西?保持应用程序可伸缩和可重用的最佳实践是什么

如果用户已登录,而表单不存在,jQuery将无法找到要绑定的选择器。虽然这会对性能有轻微的影响,但是你可以不受影响。

或者,你可以创建一个PHP JS文件,它将允许你根据你正在查看的页面打印出JS。比如javascript。js。php?Page =home, PHP代码如下:

<?php
if($_GET['page'] == 'home'){
 print "$('#changeMailForm').submit(/*some code here*/) // or";
 print "$('#loginForm').submit()";
}
?>

你可以使用jQuery来处理页面中不存在的元素。如果一个选择器没有找到任何元素,你会得到一个空的jQuery对象,而对一个空的jQuery对象应用方法则什么也不做。

但是,如果在不同的页面中有很多不同的事件处理程序,那么在每个页面中只绑定实际期望的事件处理程序会更容易维护。这使得代码更易于维护,因为您可以在页面中添加元素,而不必检查站点中所有事件处理程序的冲突列表。

最新更新