2017-06-22 115 views
0

我是JavaScript的新手,特别是cytoscape。JavaScript cytoscape不能正常工作,直到调整窗口大小窗口

我有代码:

  <div id="graphicalEditor" class="tab-pane fade"> 

      <br> Name: <input type="text" id="name"> <input 
       type="button" onclick="addnode('name');" value="add node"> 
      <input type="button" onclick="cy.remove('node');" value="clear"> 
      <input type="button" onclick="sendData()" value="send"> <br> 
      <br> 

      <div id="cy" 
       style="width: 60em; height: 30em; postion: absolute; border: 1px solid black;"></div> 

      <script type="text/javascript"> 
       var cy = cytoscape({ 

        container : document.getElementById('cy'), 

        layout : { 
         name : 'preset' 
        }, 

        // so we can see the ids 
        style : [ { 
         selector : 'node', 
         style : { 
          'content' : 'data(id)' 
         } 
        } ] 

       }); 
      </script> 

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

        var nome = document.getElementById(p).value; 

        var eles = cy.add([ { 
         group : "nodes", 
         data : { 
          id : nome 
         }, 
         position : { 
          x : 100, 
          y : 100 
         } 
        } 

        ]); 
       } 
      </script> 

      <script type="text/javascript"> 
       function sendData() { 
        $.ajax({ 
         type : 'GET', 
         dataType : 'json', 
         contentType : 'application/json', 
         url : "/testAjax", 
         data : cy.json() 

        }); 
       } 
      </script> 
     </div> 

有人能解释我为什么Cytoscape的的分度,JS只能后我调整Firefox窗口?调整大小后,所有工作正常。

我不知道它是否相关,但这个div是在引导程序导航标签。

回答

0

你需要用你的Cytoscape初始化的DOMContentLoaded事件监听

document.addEventListener("DOMContentLoaded", function() { 
    cy = cytoscape({..}) 
} 
+0

'<脚本类型= “文本/ JavaScript的”> \t \t \t \t document.addEventListener( “DOMContentLoaded”,函数(){ \t \t \t \t \t \t \t \t \t \t var cy = cytoscape({ \t \t \t \t \t \t容器:文档。的getElementById( 'CY'), \t \t \t \t \t \t布局:{ \t \t \t \t \t \t \t名: '预置' \t \t \t \t \t \t}, \t \t \t \t \t \t //所以我们可以看到ID为 \t \t \t \t \t \t式:[{ \t \t \t \t \t \t \t选择: '节点', \t \t \t \t \t \t \t式:{ \t \t \t \t \t \t \t \t '内容':“数据(id)' \t \t \t \t \t \t \t} \t \t \t \t \t \t}] \t \t \t \t \t}); \t \t \t \t \t} \t \t \t \t'...不工作:( – alex

+0

尝试了以下的(几乎是一样的,你有什么)和似乎没有任何问题.. https://jsbin.com/vuqeremuko/3/edit?html,console,output –

+0

是的我的代码工作...我知道它我的问题是,只有我调整了我的浏览器页面 – alex

0

尝试ASIGN一个集装箱之前cytospace完全的页面。 例如:

<script type="text/javascript"> 
    var cy; 
    $(document).ready(function(){ 
    cy = cytoscape({ 
     container : document.getElementById('cy'), 
      layout : { 
       name : 'preset' 
      }, 
       // so we can see the ids 
      style : [ { 
       selector : 'node', 
       style : { 
       'content' : 'data(id)' 
       } 
      } ] 
    }); 
    }); 
</script>