0

我花了一天的时间来编写一个应该相对容易实现的脚本。然而事实并非如此。

基本上我想做的事情如下。有 5 个 onclick 按钮将 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);

where$plot引用了我传入的 jQuery 对象。

当我直接访问 flot.php?type=graph1 时,此设置完美运行。加载数据并绘制图表。

但是,当我通过 index.php 中的 Ajax 加载它时,它不会。

虽然console.log($plot.find(".placeholder"));显示传入的对象,但它似乎不适用于绘制图形。

如果我将其更改为简单$(".placeholder"),它会再次起作用。

带有浮动的悬停动作也是如此。当我绑定操作时,它在直接访问时工作正常,但仅$(".placeholder")在通过 ajax 访问时才有效。

现在我传递 jQuery 对象的原因是因为我也被告知 :) 显然出于某种原因它很好。如果有人也能就此启发我,我将不胜感激。

所以是的..为什么会发生这种情况?为什么从 ajax 请求调用时,传递的对象似乎不适用于 flot?

非常感谢。

4

0 回答 0