gpt4 book ai didi

javascript - 如何使用 jQuery 触发基于散列值的散列变化的不同函数?

转载 作者:行者123 更新时间:2023-11-29 18:32:46 25 4
gpt4 key购买 nike

我正在使用 Ben AlmanjQuery hashChange 事件插件。哈希部分如下所示:

#x=1&y=2&z=3

我已经有了解析它的函数 getHashPart(key)setHashPart(key)

我想要一个函数,允许注册哈希的特定部分的更改。我会这样使用它(我猜...):

$(window).hashchange('x',function(new_value_of_x) {do something x related;});
$(window).hashchange('y',function(new_value_of_y) {do something y related;});

如何使用 jQuery 注册这样的函数?有没有类似的东西?

谢谢!

最佳答案

您可以拥有一个响应所有 hashchange 事件的函数(最好保持 hashchange 插件在使用中),然后像这样重定向到各个处理程序:

var hashParameters = {};

$(window).bind("hashchange",function(event) {
//if you're using the awesome hashchange plugin
//$(window).hashchange(function(event) { ...
var newParameters = getParameters(event.target.location.hash.substring(1));
$.each(newParameters, function(key, value) {
if(hashParameters[key] !== value) $(window).trigger(key + "-change");
hashParameters[key] = value;
});
});

$(window).bind("andsome-change", function() {
alert("hi!");
});

function getParameters(paramString) {
//taken from http://stackoverflow.com/questions/4197591/parsing-url-hash-fragment-identifier-with-javascript/4198132#4198132
var params = {};
var e, a = /\+/g, r = /([^&;=]+)=?([^&;]*)/g,
d = function (s) { return decodeURIComponent(s.replace(a, " ")); };
while (e = r.exec(paramString))
params[d(e[1])] = d(e[2]);
return params;
}

window.location.hash = "some=value&andsome=othervalue";

我有一个工作演示 here (现在有了 hashchange 插件,见第一条评论)。

关于javascript - 如何使用 jQuery 触发基于散列值的散列变化的不同函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174821/

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