gpt4 book ai didi

Javascript 数组遍历覆盖键值

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

我创建了一个 hashmap 来控制按钮的事件。它是这样定义的:

var Signage_Manager = {

init: function() {

Signage_Manager.buttonActions.set_events();

},
buttonActions: {
buttons: {

'#add_product': {action: 'navigate', href: '/manager/add_product'},
'.back_to_dashboard': {action: 'navigate', href: '/manager/dashboard'}

},
set_events: function() {
for(var button in Signage_Manager.buttonActions.buttons){
if(Signage_Manager.buttonActions.buttons[button].action == 'navigate') {
$(button).live('click', function() {
console.log(Signage_Manager.buttonActions.buttons[button].href);
});
}
else {
$(button).live('click', function() {
//
console.log('not navigate');
});
}
}
}
}
};

问题是当我单击“添加产品”按钮时,它会尝试使用 href“/manager/dashboard”,而不是定义行中的“/manager/add_product”字符串。

有人可以帮忙吗?

最佳答案

由于关闭,您的实时功能将关闭相同 按钮变量,该变量在每次迭代 中都会发生变化。因此,最后所有事件处理程序都将使用相同的按钮:最后一个。为了保留按钮名称,您可以为事件处理程序创建一个内部作用域,以确保每个函数都有其自己的 jQuery 选择器。

if (Signage_Manager.buttonActions.buttons[button].action == 'navigate') {
(function(button) {
$(button).live('click', function () {
console.log(Signage_Manager.buttonActions.buttons[button].href);
});
})(button);
}

关于Javascript 数组遍历覆盖键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3316739/

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