我花了一天时间编写一个应该相对简单易用的脚本。但事实并非如此。
基本上我想做的是如下。 有5个按钮可以将一个flot(jQuery插件)图形加载到div中。
所以,我有我的文件flot.php,它在url中输入参数'type'。此参数告诉flot要加载哪个图。
Flot需要jQuery和相关的flot文件才能工作。现在我的index.php文件包含这些文件,但因为flot.php是由Ajax调用的,它本质上是独立的..因为flot.php不包含相同的头文件我必须在flot.php中包含相关的js文件它工作..对吗?
现在在flot.php中我使用jQuery.getScript
来获取我的json。这是在document.ready()
语句中,因此要调用它,必须加载相关的图容器等。对吗?
在返回数据时,我将数据传递给另一个执行实际绘图的函数。
我致电plotMultiLines($('#<?php echo $id ?>'), o.data);
这会传递对我的容器对象和我的数据的引用。
最初我做了以下事情:
$.plot($plot.find(".placeholder"),data,options);
其中$plot
引用我传入的jQuery对象。
当我直接访问flot.php?type = graph1时,此设置完美无缺。加载数据并绘制图表。
然而,当我在index.php中通过Ajax加载它时,它不会。
虽然console.log($plot.find(".placeholder"));
显示传入的对象,但它似乎不适用于绘制图形。
如果我将其更改为$(".placeholder")
,则可以再次使用。
使用flot进行悬停操作的情况也是如此。当我绑定动作时,它在直接访问时工作正常但仅在通过ajax访问时与$(".placeholder")
一起使用。
现在我传递jQuery对象的原因是因为我被告知了:)显然它是出于某种原因很好。如果有人能够在这方面给我启发,我们将不胜感激。
是的..为什么会发生这种情况?为什么传递的对象在从ajax请求调用时似乎不适用于flot?
非常感谢。