gpt4 book ai didi

javascript - 支持后进回调的设计模式(例如处理 hashchange)

转载 作者:行者123 更新时间:2023-11-29 10:52:53 27 4
gpt4 key购买 nike

在我的网页上,我有多个独立的插件(找不到更好的词),它们都与浏览器的 location.hash 交互。 (我有一些代码可以让他们的工作分开,但这与这个问题无关。)例如,我有:

// file1.js
$(window).bind('hashchange', function(){ ... } );

// file2.js
$(window).bind('hashchange', function(){ ... } );

当哈希值在页面加载后发生变化时,上面的代码可以正常工作。但是,我还需要此代码来处理页面最初加载的任何哈希值。如果我写这段代码:

// file1.js
$(window).bind('hashchange', function(){ ... } ).trigger('hashchange');

// file2.js
$(window).bind('hashchange', function(){ ... } ).trigger('hashchange');

...那么第一组代码将运行两次。不可取。

什么是在所有事件处理程序都已就位后仅触发一次 hashchange 事件的好模式?

最佳答案

一种选择是命名事件处理程序和触发器:

// file1.js
$(window).bind('hashchange.file1', function(){...} ).trigger('hashchange.file1');

// file2.js
$(window).bind('hashchange.file2', function(){...} ).trigger('hashchange.file2');

这将导致两个处理程序在通用 hashchange 事件真正发生时运行,但只会导致命名空间处理程序在触发时运行。

关于javascript - 支持后进回调的设计模式(例如处理 hashchange),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6767959/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com