javascript - 动态获取 svg 元素 'id' 属性(Google SVG web)

标签 javascript svg addeventlistener

(使用http://code.google.com/p/svgweb/)

window.onsvgload = function() {
  function onEnter(e) {          
    var targ;
    if (!e) var e = window.event;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
      targ = targ.parentNode;

    alert(targ.hasAttributeNS(null, 'id')); //displays false
    alert(targ.getAttributeNS(null, 'id')); //displays a blank dialog
    alert(targ.id); //displays a blank dialog
  }

  /* Seldom_Seen is a group element in the SVG - <g id="Seldom_Seen">... */
  document.getElementById('Seldom_Seen').addEventListener("mouseover", onEnter, false); //alert is blank
  document.getElementById('normal_dom_element').addEventListener("mouseover", onEnter, false); //alert displays id as expected
}

事件监听适用于 SVG 元素。我就是看不到id。我可以获得其他对象属性,例如 x,y 值。无论如何要获取目标元素的 ID 吗?

最佳答案

也许

e.currentTarget

但是使用 jQuery,就很简单

window.onsvgload = function() {
  $('#Seldom_Seen').mouseover(function(){ onEnter(this); });
  $('#normal_dom_element').mouseover(function(){ onEnter(this); });
}

function onEnter(obj) {
  alert($(obj).attr("id"));
}

关于javascript - 动态获取 svg 元素 'id' 属性(Google SVG web),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3169497/

相关文章:

javascript - 仅对 img 进行填充

javascript - d3js : Replace a particular tick value on X-Axis

android - 在运行时从 SVG 文件创建 VectorDrawable

css - SVG - 过滤器和 CSS 跨浏览器问题

javascript - 更改 SVG 路径的 X 和 Y 坐标

javascript - 在选项卡上方显示 tbar

javascript - 三个js向右线性方向移动相机

javascript - 将带有 2 个参数的函数传递给 addEvent Listener 方法

javascript - 未捕获的 TypeError : json. forEach 不是函数

javascript - setTimeOut 如何与调整大小事件监听器配合使用?