javascript - 更改页面后附加事件会怎样?

标签 javascript jquery jquery-events

考虑这个场景:

2 个略有不同的页面有 2 个略有不同的表:user-tableadmin-table。两者都实现分页。让我们假设这个

<div class="pager">
    Pager implementation
</div>

我将事件附加到 .pager,附加到页码按钮,并在不同的文件中执行两次。每个文件都有不同的寻呼机实现(即调用不同的 Controller )。脚本包含在它们相应的页面中,并在加载 DOM 后加载。

用户表.js

$('.pager').on('click', '.page', function() {
    $.get(...) //calling user-controller to get the results
};

管理表.js

$('.pager').on('click', '.page', function() {
    $.get(...) //calling admin-controller to get the results
};

不知何故,这行得通并且不冲突。这对我来说是违反直觉的。

当我导航到用户页面时,加载了 user-table.js。单击页码后,将触发事件并加载内容。

当我导航到管理页面并执行相同操作时会发生什么?为什么它有效? 导航后,将加载第二个脚本并分配/委托(delegate)新事件。不应该有冲突吗?上一页/脚本中的事件是否被“遗忘”?脚本将被缓存,我预计会再次发生冲突,但事实并非如此。

有人可以向我解释工作流程或事件生命周期吗?离开页面后,现有事件会发生什么变化?我尝试使用谷歌搜索,但找不到任何相关内容。

最佳答案

Are the events from the previous page/script 'forgotten'?

是的。 HTML 是完全无状态的。浏览器只会考虑当前加载到 DOM 中的内容。当 beforeunload 事件触发时,所有之前的页面都将从内存中删除。

关于javascript - 更改页面后附加事件会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55459219/

相关文章:

javascript - 在 .load() 中的元素上使用 jQuery

javascript - JQuery 用户界面;停止可选事件的传播

javascript - 使用 Json.Net 序列化 Entity Framework 对象

javascript - Ajax 成功 if 语句

javascript - 如何发现和填充同位素 jquery 网格中元素之间的空白区域?

javascript - 更改 JavaScript 中的变量引用

javascript - 根据数据属性用按钮执行不同的操作

javascript - 如何让 cron 作业运行 Node.js 脚本以从 .env 文件中读取变量?

jQuery 放大图像但保持居中

javascript - 从对象中查找和删除项目