2

ウィザード、

クリップパスでのマウスオーバー イベントに問題があります。何らかの理由でそれがトリガーされていません。要素が男の画像を切り取っているためだと思います。

私の目標は、ホバーされた要素のユーザー ID (例では 1、2、または 3 - 「ドット」テーブルの 4 番目の要素) を警告することです。

私はそれをjsfiddleにロードしました:

https://jsfiddle.net/vk1jc8ah/4/

誰かがそれを機能させることができますか、または同じ目標を達成する別の方法を提案できますか?

HTML:

<div class="projectbounds" style="width:400px; height:300px; background-color:#000000;"></div>

JS:

var size = 30,
    w = 400,
    h = 300,
    dots = [];

dots.push([101, 200, 0, 1, 1]);
dots.push([170, 120, 0, 2, 1]);
dots.push([210, 150, 0, 3, 1]);

var svg = d3.select(".projectbounds")
    .append("svg:svg")
    .attr("id", "robsvg")
    .attr("width", w)
    .attr("height", h)
    .style("cursor", "pointer");

var defs = svg.append("svg:defs");

var imgbg = svg.append('svg:image')
    .attr('xlink:href', 'http://www.empireonline.com/images/features/100greatestcharacters/photos/7.jpg')
    .attr('x', 0)
    .attr('y', 0)
    .attr('width', w)
    .attr('height', h)
    .attr('clip-path', 'url(#robclip)');

var robs = defs.append("svg:clipPath").attr("id", "robclip");

function redraw() {
    for (var d in dots) {
        robs.append("circle")
            .attr("class", function () {
                return "userid" + dots[d][4] + " bgtier" + dots[d][3];
            })
            .attr("cx", function () {
                return dots[d][0];
            })
            .attr("cy", function () {
                return dots[d][1];
            })
            .attr("r", size + 1)
            .attr("onmouseover", function() { ////// not triggering...
                return "alertid()"; ////// not triggering...
            });
    }
}

function alertid(){ 
    alert("hi");
}

redraw();

私はそれをjsfiddleにロードしました:

https://jsfiddle.net/vk1jc8ah/4/

誰か助けてくれませんか?

4

1 に答える 1