javascript - 如何更改第二次单击时的不透明度?

标签 javascript jquery svg d3.js

我通过点击另一个标签来更改标签的不透明度。这是一段代码:

<style>
.selected {
    opacity: 0;
}
</style>

var linktext = svg.selectAll('g.linklabelholder').data(force.links())
     linktext.enter().append('g')
    .attr('class', 'linklabelholder')
        .append('text')
    .attr('class', 'linklabel')
    .style('fill','red')
    .style('font','10px')
    .text(function(d) { return d.name })
    .call(force.drag)
    .on("click", function (d){
           d3.select("#i" + d.inn).classed("selected", true);
       });

var linktext_add = svg.selectAll('g.linklabelholder_add').data(force.links())
    linktext_add.enter().append('g')
    .attr('class', 'linklabelholder_add')
    .attr('id', function(d) { return 'i'+ d.inn; })
    .attr('class', 'linklabel_add')
    .append('text')
    .style('fill','black')
    .style("font-size","10px")
    .attr("text-anchor", "right")
    .attr("dy", -16)
    .text(function(d) { return d.inn; });

如何使第一次不透明度=0并在单击时更改为不透明度=1,然后在第二次单击时再次更改为不透明度=0?

最佳答案

我不熟悉 SVG 或这里的语法,但正如 Austin 在评论中建议的那样,当我有这样的事情时,我通常会这样做:

样式和标题变量:

<style>
.selected {
    opacity: 0;
}
.deselected {
    opacity: 1;
}
</style>

var toggleSelected = true;

然后点击...

.on("click", function (d){
           if(toggleSelected == true) {
               d3.select("#i" + d.inn).classed("selected", true);
               toggleSelected = false;
           } else {
               d3.select("#i" + d.inn).classed("deselected", true);
               toggleSelected = true;
           } 
});

这是设置一个toggleSelected bool 值,第一次点击时将设置为0,第二次点击时设置回1。

不过我不知道语法。

编辑: Austin也指出了这个答案,Jquery change opacity of div on click .

关于javascript - 如何更改第二次单击时的不透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24212465/

相关文章:

javascript - 在过滤/搜索问题后更改输入 - VueJS

javascript - 如何检测滚动值是否大于窗口高度?

javascript - 如何使整个div可点击

html - 如何从圆 Angular 矩形的顶部中心开始描边

javascript - Safari 的网站问题

javascript - 将 p5 导入 Vue 应用程序

jquery - 在 jQuery 中更改类并在单击时获取值

javascript - 如何有选择地将鼠标事件传递给底层 svg 元素

html - 可以在 SVG 中将 &lt;!-- comment --> 作为第一行吗?

javascript - 如何在 d3 中绘制具有预定义起始位置和边距级别的一堆矩形