我在互联网上找到了这个代码并且有效:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="~/Scripts/cytoscape.js"></script>
<div id="cy"></div>
<script>
$(function(){ // on dom ready
$('#cy').cytoscape({
style: cytoscape.stylesheet()
.selector('node')
.css({
'content': 'data(deneme)'
})
我将此代码更改为下面的代码(我基本上将代码块移到了ajax调用的成功部分中):
$("form").submit(function (event) {
event.preventDefault();
$.ajax({
type: 'POST',
url: "/MyController/MyAction",
data: { nameid: $('#nameid').val() },
success: function (newdata) {
$('#cy').cytoscape({
layout: {
它给出了这个错误:
> MainGraph:55 Uncaught TypeError: $(...).cytoscape is not a function
> at Object.success (MyCode:55)
> at i (jquery.min.js:2)
> at Object.fireWith [as resolveWith] (jquery.min.js:2)
> at A (jquery.min.js:4)
> at XMLHttpRequest.<anonymous> (jquery.min.js:4)
我该如何使这项工作?我尝试将代码更改为:
var cy = cytoscape({
container: $('#cy'),
上面的错误消失但其他部分失败了。我该如何解决这种情况?感谢。
答案 0 :(得分:1)
没有$(el).cytoscape()
功能。您执行let cytoscape = require('cytoscape'); let cy = cytoscape();
或let Cytoscape = require('cytoscape'); let cy = new Cytoscape();
]
通常不需要将cy init置于回调中。只需指定elements
作为承诺,Cytoscape处理其余承诺。