我正在使用此插件创建图表:http://www.filamentgroup.com/lab/update_to_jquery_visualize_accessible_charts_with_html5_from_designing_with/
如果我在firebug中通过控制台运行代码,下面的代码可以工作,但是如果我在重新加载页面时运行它就不会加载图表。
我猜它是因为父元素是在加载DOM之后创建的。
所以我想知道我是否可以用jQuery live()
解决这个问题?载荷如:
有关如何在创建新元素后启动插件的任何想法?
$('#snow-line').visualize({type:'bar'});
$('#resort-open').visualize({
type:'pie',
colors: ['#658AB6','#FAFAFA']
});
更新
这就是我通过JSON对象呈现数据的方式
var resortOpenPerc = loadResort.openDownHillPercent;
var ressortOpenDiff = 100-resortOpenPerc;
$("#resort-open tbody tr:eq(0) td:first").html(resortOpenPerc);
$("#resort-open tbody tr:eq(1) td:first").html(ressortOpenDiff);
此错误正在呈现:
Index or size is negative or greater than the allowed amount
domain.com/visualize.js
Line 201
答案 0 :(得分:2)
“所以我想知道我是否可以用jquery live()来解决这个问题?”
没有。推测.live()
方法可能部分是因为它没有传达这仅仅是事件委托的事实。
换句话说,它只适用于处理浏览器事件,而不是像插件那样的任意代码。
你说使用Mustache.js创建“元素,并通过JSON加载数据。
我不知道你的代码意味着什么(因为你没有发布),但是如果你在创建新元素时没有直接访问它们,那么只需选择它们 之后,它们已被添加到DOM中,并在那时运行插件。
// code to create new elements...
$('#snow-line').visualize({type:'bar'});
$('#resort-open').visualize({
type:'pie',
colors: ['#658AB6','#FAFAFA']
});
如果这不起作用,那么还有其他一些问题,您需要发布您的代码,以便我们可以看到问题。
答案 1 :(得分:0)
我认为您可以使用livequery插件:
$('#snow-line').livequery(function() {
$(this).visualize({type:'bar'});
});
$('#resort-open').livequery(function() {
$(this).visualize({
type:'pie',
colors: ['#658AB6','#FAFAFA']
});
});