我花了一天的时间来编写一个应该相对容易实现的脚本。然而事实并非如此。
基本上我想做的事情如下。有 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?
非常感谢。