在html中没有在dragstart上调用函数getId。代码看起来简单而正确,我不确定为什么它没有被调用
HTML code:
<div id="content">
<div style="position: relative; height: 100%;">
<div style="display: inline-block; height: 100%; vertical-align: top; border-right: 2px solid darkcyan;" id="sidebar">
<div><a id="newTask" title="Add new task" draggable="true" ondragstart=getId(this.id)><img src="task.png" /></a></div>
</div>
<div id="canvas" tabindex="0"></div>
<div id="tabbar"></div>
</div>
</div>
JS:
window.onload = function ()
{
var svg = d3.select("body")
.append("svg")
.attr("width", 800)
.attr("height", 803);
function getId(id)
{
var shapeId = id;
console.log(shapeId);
}
};
它抛出错误说:Uncaught ReferenceError: getId is not defined
答案 0 :(得分:0)
您已在getId
函数中声明了onload
函数 - 即它不在可以通过事件调用的范围内。
将其移到onload
函数之外:
window.onload = function ()
{
var svg = d3.select("body")
.append("svg")
.attr("width", 800)
.attr("height", 803);
};
function getId(id)
{
var shapeId = id;
console.log(shapeId);
}
答案 1 :(得分:0)
试试这个:
window.onload = function ()
{
var svg = d3.select("body")
.append("svg")
.attr("width", 800)
.attr("height", 803);
};
function getId(id)
{
var shapeId = id;
console.log(shapeId);
}
由于函数范围已定义,函数getId
不可见。让它全球化。 (需要进一步重构)。