传递jQuery对象引用时由ajax调用不起作用

时间:2013-05-24 23:24:06

标签: jquery ajax reference load flot

我花了一天时间编写一个应该相对简单易用的脚本。但事实并非如此。

基本上我想做的是如下。 有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?

非常感谢。

0 个答案:

没有答案