2011-09-08 62 views
0

这个问题有点冗长,但基本上我想修改jQuery中使用struts jquery插件创建的饼图。在纯jQuery中更新struts jquery图表

我有一个使用struts jquery插件图表模块创建的饼图 - >>http://code.google.com/p/struts2-jquery/wiki/ChartTag 该模块不像纯jQuery实现那样健壮。我想要做的是添加一个阈值,也许悬停/点击事件。似乎没有办法将这些添加到struts jquery模块。有没有办法使用jQuery来更新图表后,它已经被创建?

这里是我的代码:

<sjc:chart 
    id="chartPie2" 
    cssStyle="width: 100%; height: 400px;" 
    legendShow="true" 
    pie="true" 
    pieLabel="true" 


> 
    <s:iterator value="%{mapFromStrutsAction}"> 
     <sjc:chartData 
      label="%{key} - %{formatCurrency(value)}" 
      data="%{value}" 
     /> 
    </s:iterator> 
</sjc:chart> 

我想要做的就是以某种方式利用这个图表所创建和修改。正如我所提到的,jquery实现中有些东西似乎并未在struts jquery插件中提供,如阈值,组合片和悬停/点击效果(如此处所示 - >http://people.iola.dk/olau/flot/examples/pie.html)。

这里是我的尝试,放置块,这似乎并不里面上面的代码后,似乎真的改变什么:

// INTERACTIVE 
    $.plot($("#chartPie2"), 
    { 
     series: { 
     pie: { 
      show: true, 
      radius: 1, 
      label: { 
       show: true, 
       }, 
       threshold: 0.1 
      } 
     } 
    }, 
    legend: { 
     show: false 
    } 
    }); 

}); 

是否有可能修改图表以这种方式被创建后?

回答

1

如果您尝试在自定义标记完成其工作后通过原始jQuery设置所需的东西,会发生什么情况?

如果这不起作用,那么可能不是。 IMO标签仅用于最简单的用例;只要编写JavaScript/jQuery,你就会变得更好。

另一种选择是仅插入插件或单个标签,对其进行修补以完成自己想要的功能,然后将补丁提供给社区以便其他人可以受益。

+0

如果我尝试修改原始jQuery中的图表后,事实似乎没有改变。有可能我没有正确地做到这一点。使用struts jquery方法更像是一个指令,因为我希望只使用常规的flot jquery插件。主要原因是因为我们想从struts动作中使用地图,而不是进行json调用。该页面的struts操作已经有了数据。 – jacosta

+0

您应该可以使用S2插件使用的相同方法 - 它可以直接设置数据,也可以执行此操作,也可以进行远程调用。 –

+0

这是真的。问题是,由于“更紧密的整合”,我被指示使用struts插件来完成它。我认为这有待讨论;)我更新了我的原始问题,其中包括我尝试使用纯jQuery进行更新。正如你所看到的,我忽略了数据属性,因为我真的只想改变外观/感觉 - 我有一种感觉,我的语法刚刚关闭。有没有在jQuery中创建的jQuery中的图表更新的例子?我发现了一些东西,但它需要将绘图函数设置为一个变量,我不相信自己有能力去做 – jacosta