gpt4 book ai didi

javascript - 在replaceWith之后jquery中的数据对象未定义

转载 作者:行者123 更新时间:2023-11-28 09:59:04 26 4
gpt4 key购买 nike

我正在编写一个 jquery 插件,我需要一些按钮来具有双重状态(例如编辑/保存)我通过 JSON 获取此信息并将其插入按钮中:

node
- current //['primary'/'secondary']
- primary // some info
- secondary // some info

一旦我点击按钮,我就会到达这里更改操作。所以我想通过模板和从button.data 获得的信息替换整个链接。因为我不仅想替换innerHtml,还想替换outer,所以我必须使用“replaceWith”。然后,我将“数据”复制到新按钮并(理想情况下)删除旧按钮。

changeButtonAction : function(button, selector){
var node = button.data('node'),
info;

if(node.current == 'primary'){
info = node.secondary;
node.current = 'secondary';
}else{
info = node.primary;
node.current = 'primary';
}

button.replaceWith(multiReplace(OPERATION_ITEM, info, true));
button.data('node', $.extend( true, {}, node));

... //bit of interaction
}

事情是:一旦退出函数我就会丢失新数据,因为它说它未定义。有人可以帮忙吗?使用 'replaceWith' 不是必须的,所以如果你想出另一个解决方案就可以了。

最佳答案

好的,我解决了。

感谢 Diode,我尝试在 jsfiddle 中重现它。点击功能也不起作用,所以我稍微改变了我的代码。而不是用文本替换:

button.replaceWith(multiReplace(OPERATION_ITEM, info, true));
button.data('node', $.extend( true, {}, node));

用一个对象来做:

var button2 = $(multiReplace(OPERATION_ITEM, info, true))
.data('node', $.extend( true, {}, node));
button.replaceWith(button2);

您可以看到它的实际效果: http://jsfiddle.net/p8vMR/9/

关于javascript - 在replaceWith之后jquery中的数据对象未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9505438/

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