gpt4 book ai didi

javascript - 保留动态按钮初始属性的内存

转载 作者:行者123 更新时间:2023-11-29 21:07:16 26 4
gpt4 key购买 nike

我想制作一个非常简单的混搭系统,用户可以在其中从触发事件的select 下拉菜单中选择项目。我有一些按钮以一种即兴的方式附加到文档中,也就是说,每当用户从 select 中选择某些内容时,就会出现一些文本以及一个用于删除该文本的按钮(和相应的按钮)。我正在使用 D3 来操作选择、添加类和附加内容。我使用类来告诉按钮要删除的文本。尽管如此,我相信这仍然可能只是我遇到的原生 JavaScript 问题。问题如下:

select 下拉菜单中选择一些内容,然后按从下到上的顺序单击 x 按钮后,行为就如您所愿。但是,如果您单击顶部或中间的按钮,该按钮将不会删除正确的文本。我相信这是因为按钮只是删除了我正在使用的动态类的任何最新字符串值。这让我怀疑该按钮是否实际上保留了其 .on('click', function() {})(因此是帖子标题)的初始属性。

如果是这样的话,我真的不确定如何规避这样的问题,因为按钮本质上是动态的。

非常简短的示例 here .

最佳答案

不需要保留内存之类的东西只要确保你的元素是可访问的一个这样的场景是将元素的id引用保存为另一个元素的类像这样

d3.select('body').append('button')
.text('X')
.attr('id','b'+(intCount+1))
.attr('class',choice+'1') //class is the id of the text element
.on('click', function(d,i) {
var t = d3.select(this).attr('id')
var c = d3.select(this).attr('class')
var thisChoice = choice;

d3.selectAll('.' + t).remove(); //remove this element
d3.selectAll('.'+ c).remove(); //remove text element
intCount -= 1;
count -= .7;
});

工作 FIDDLE

关于javascript - 保留动态按钮初始属性的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43450334/

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