2015-12-02 22 views
0

好的我已經從網上獲得了d3.js的這個腳本。Javascript代碼可以在asp.net中使用,但不能在從文件中作爲函數調用時使用

function draw() { 

    var w = 600, 
     h = 400, 
     z = d3.scale.category20b(), 
     i = 0; 

    var svg = d3.select("div.container2").append("svg:svg") 
     .attr("width", w) 
     .attr("height", h) 
     .on("mousemove", particle); 
} 

function particle() { 
    var m = d3.mouse(this); 

    svg.append("svg:rect") 
     .attr("x", m[0] - 10) 
     .attr("y", m[1] - 10) 
     .attr("height", 20) 
     .attr("width", 20) 
     .attr("rx", 10) 
     .attr("ry", 10) 
     .style("stroke", z(++i)) 
     .style("stroke-opacity", 1) 
     .style("opacity", 0.7) 
     .transition() 
     .duration(5000) 
     .ease(Math.sqrt) 
     .attr("x", m[0] - 100) 
     .attr("y", m[1] - 100) 
     .attr("height", 200) 
     .attr("width", 200) 
     .style("stroke-opacity", 1e-6) 
     .style("opacity", 1e-6) 
     .remove(); 
} 

The part of the asp.net that called the function is simply 
<script src="js/d3Script.js"></script>   
    <script>   
     draw(); 
    </script> 

現在,當我與Java取代繪製函數直接進入ASP頁面,它工作正常。當我從js文件調用它時,它會繪製畫布,但沒有任何反應。

被調用的粒子函數IS(我用警報檢查過),但沒有畫任何東西。所有其他需要的js文件都已準備就緒。

我是否缺少一些簡單的?謝謝!

回答

0

只需調用JavaScript

<script type="text/javascript"> 
    function draw() { 

     var w = 600, 
      h = 400, 
      z = d3.scale.category20b(), 
      i = 0; 

     var svg = d3.select("div.container2").append("svg:svg") 
      .attr("width", w) 
      .attr("height", h) 
      .on("mousemove", particle); 
    } 
    </script> 

<script type="text/javascript"> 
function particle() { 
     var m = d3.mouse(this); 

     svg.append("svg:rect") 
      .attr("x", m[0] - 10) 
      .attr("y", m[1] - 10) 
      .attr("height", 20) 
      .attr("width", 20) 
      .attr("rx", 10) 
      .attr("ry", 10) 
      .style("stroke", z(++i)) 
      .style("stroke-opacity", 1) 
      .style("opacity", 0.7) 
      .transition() 
      .duration(5000) 
      .ease(Math.sqrt) 
      .attr("x", m[0] - 100) 
      .attr("y", m[1] - 100) 
      .attr("height", 200) 
      .attr("width", 200) 
      .style("stroke-opacity", 1e-6) 
      .style("opacity", 1e-6) 
      .remove(); 
    } 
</script> 

和功能draw()particle()打電話給你的要求。

+0

感謝您的回覆。不過,我希望能夠跨越多個頁面併發布各種數據。作爲一個單獨的文件重用會不會更好?非常感激!!!! – Martin

相關問題