错误$不是xpages中的函数

时间:2013-05-09 08:46:26

标签: javascript xpages jqplot xpages-ssjs

我正在使用QJplot在XPages中绘制图表。它工作正常,直到我复制整个过程,即提取数据的按钮,绘制数据的按钮等。现在由于某种原因我不断收到一条错误,上面写着“更新部分页面时出错。$ is not not not一个功能。“当我在浏览器中进行预览并查看错误控制台时,会突出显示“$(document).ready(function(){”

在工作版本中,下面的代码是相同的,唯一的区别是从不同的视图中提取值。

`<xp:scriptBlock id="scriptBlock" rendered="true">
<xp:this.value>
<![CDATA[$(document).ready(function(){
      var line1 = #{javascript:return compositeData.Temp};
      var line2 = #{javascript:return compositeData.MaxTemp};
      var line3 = #{javascript:return compositeData.MinTemp};
      var ticks1 = #{javascript:return compositeData.Time};

      var plot1 = $.jqplot('chart3', [line1,line2,line3], {
        title: '#{javascript: return compositeData.title}',
        animate:#{javascript:return compositeData.animated},
          seriesDefaults: {
              renderer: $.jqplot.LineRenderer,
              rendererOptions:{lineMargin: 25},
              pointLabels:{show:true, stackedValue: true}
          },
          series:[
              {label:'#{javascript:return compositeData.legendTemp}'},
              {label:'#{javascript:return compositeData.legendMaxTemp}'},
              {label:'#{javascript:return compositeData.legendMinTemp}'},

          ],
          legend: {
              show: #{javascript:return compositeData.legendShow},
              placement: '#{javascript:return compositeData.legendPlacement}'
          },
          axes: {
              xaxis:{
              label: "Time (min)",
              pad: 0,
                renderer:$.jqplot.CategoryAxisRenderer,
                ticks: ticks1
              },
              yaxis:{
              label: "Temperature (Deg. C)"
           }
          }
      });
    }); 
    ]]>
    </xp:this.value>
</xp:scriptBlock>`

从视图中提取值的代码也在起作用。无法使用的按钮是应该绘制图形的按钮。

<xp:button value="Replot Chart" id="refresh_code_plot"> <xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="code_plot"> </xp:eventHandler> </xp:button>

code_plot是包含scriptBlock的自定义控件。它通过此代码链接到XPages

<xc:code_plot id="code_plot" legendMaxTemp="Upper Threshold" legendMinTemp="Lower Threshold" legendTemp="Data" title="Logger Data (Temperature)" cssStyle="width:900px;"> <xc:this.animated><![CDATA[#{javascript:getComponent("animated").getValue();}]]></xc:this.animated> <xc:this.Temp><![CDATA[#{javascript:getComponent("extracted_Temp").getValue();}]]></xc:this.Temp> <xc:this.MaxTemp><![CDATA[#{javascript:getComponent("extracted_MaxTemp").getValue();}]]></xc:this.MaxTemp> <xc:this.MinTemp><![CDATA[#{javascript:getComponent("extracted_MinTemp").getValue();}]]></xc:this.MinTemp> <xc:this.legendShow><![CDATA[#{javascript:"true";}]]></xc:this.legendShow> <xc:this.stackedSeries><![CDATA[#{javascript:getComponent("stackSeries").getValue();}]]></xc:this.stackedSeries> <xc:this.ticks><![CDATA[#{javascript:getComponent("extracted_Time").getValue();}]]></xc:this.ticks> <xc:this.Time><![CDATA[#{javascript:getComponent("extracted_Time").getValue();}]]></xc:this.Time> <xc:this.legendPlacement><![CDATA[#{javascript:getComponent("extracted_Time").getValue()}]]></xc:this.legendPlacement> </xc:code_plot>

这有什么明显的错误吗?

3 个答案:

答案 0 :(得分:2)

似乎你确实错过了你的jquery链接。还简化:

旧:

{label:'#{javascript:return compositeData.legendTemp}'}

新:

{label:'#{compositeData.legendTemp}'}

答案 1 :(得分:1)

你是否在主页上包含了jQuery?它无法识别其命名空间。

答案 2 :(得分:0)

我修复了这个错误。因为我使用不同的自定义控件,所以我没有在自定义属性中定义一个或两个变量,这就是为什么负责绘制图形的按钮不起作用的原因。我遇到的另一个问题是extract_Data ids。它区分大小写,当我转移按钮等时。某些ID的情况发生了变化。