Protovis JavaScript在dropdownlist onchange事件中不起作用

时间:2011-06-29 13:22:30

标签: javascript-events protovis

我注意到以下问题。当我删除任何代码块时,任何一个都可以正常工作,但是当我将它们放在一起时,只有一个有效。

我正在尝试使用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>

我想让他们两个都正常工作。

1 个答案:

答案 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/