我注意到以下问题。当我删除任何代码块时,任何一个都可以正常工作,但是当我将它们放在一起时,只有一个有效。
我正在尝试使用dropdownlist
事件从onchange
调用方法,但是当我添加了Protovis / JaavScript代码时,它失败了。
<script type="text/javascript">
function getDate()
{
alert("dateValue");
}
</script>
<script type="text/javascript+protovis">
function Colour(color) {
new pv.Panel()
.width(12)
.height(20)
.anchor("center").add(pv.Dot)
.strokeStyle(null)
.fillStyle(color)
.radius(5)
.root.render();
}
</script>
<select name="mydropdown" onchange="getDate(this)">
<option value="None">Select Date</option>
</select>
我想让他们两个都正常工作。
答案 0 :(得分:1)
上面的代码在此处按预期工作:http://jsfiddle.net/nrabinowitz/NAEku/
但是,当我实际上在页面的其他地方调用Colour()
函数时,会出现错误,我的猜测是问题的根源。这里的问题是当你使用带有script
的{{1}}块时,在页面完全加载后,它会被Protovis库评估 - 所以任何函数或变量您在type="text/javascript+protovis"
块中定义的内容将无法在页面下方的正常脚本块的全局范围内使用。
所以我的猜测是你在评估Protovis块之前试图调用javascript+protovis
。此示例的快速修复,因为您没有使用任何特殊的Protovis语法,只需将Colour()
块更改为script
,这将导致它被正常评估。
更新了,功能强大的jsFiddle:http://jsfiddle.net/nrabinowitz/NAEku/1/