我在IE9中收到以下错误
SCRIPT5022:语法错误,无法识别的表达式:## chart1 jquery-2.0.3.min.js,第4行字符14519
我不确定为什么给出下面显示的代码。我显然不会将它添加到HTML字符串中,当我在jqplot调用中引用它时只有1。那为什么会出现这个错误?
function createGraph() {
var HTMLstring = '<!DOCTYPE html>\n';
HTMLstring += '<HTML>\n';
HTMLstring += '<HEAD>\n';
HTMLstring += '<TITLE> Frequency Graph</TITLE>\n';
HTMLstring += '<!--[if lt IE 9]><script src="js/excanvas.js"></script><![endif]-->\n';
HTMLstring += '<script class="include" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>\n';
HTMLstring += '</HEAD>\n';
HTMLstring += '<BODY>\n';
HTMLstring += '<div><span>Moused Over: </span><span id="infomouseover">Nothing</span></div>\n';
HTMLstring += '<div><span>Clicked: </span><span id="infoclicked">Nothing</span></div>\n';
HTMLstring += '<div id="chart1" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>\n';
HTMLstring += '</BODY>\n';
HTMLstring += '</HTML>';
newwindow = window.open();
newdocument = newwindow.document;
newdocument.write(HTMLstring);
$(document).ready(function () {
freqchart = $.jqplot('#chart1', [
[
[2, 1],
[4, 2],
[6, 3],
[3, 4]
],
[
[5, 1],
[1, 2],
[3, 3],
[4, 4]
],
[
[4, 1],
[7, 2],
[1, 3],
[2, 4]
]
], {
seriesDefaults: {
renderer: $.jqplot.BarRenderer,
pointLabels: {
show: true,
location: 'e',
edgeTolerance: -15
},
shadowAngle: 135,
rendererOptions: {
barDirection: 'horizontal'
}
},
axes: {
yaxis: {
renderer: $.jqplot.CategoryAxisRenderer
}
}
});
$('#chart1').bind('jqplotDataHighlight',
function (ev, seriesIndex, pointIndex, data) {
$('#infomouseover').html('series: ' + seriesIndex + ', point: ' + pointIndex + ', data: ' + data + ', pageX: ' + ev.pageX + ', pageY: ' + ev.pageY);
}
);
$('#chart1').bind('jqplotDataClick',
function (ev, seriesIndex, pointIndex, data) {
$('#infoclicked').html('series: ' + seriesIndex + ', point: ' + pointIndex + ', data: ' + data + ', pageX: ' + ev.pageX + ', pageY: ' + ev.pageY);
}
);
$('#chart1').bind('jqplotDataUnhighlight',
function (ev) {
$('#infomouseover').html('Nothing');
}
);
});
}
答案 0 :(得分:2)
jqPlot()
不需要CSS样式选择器来查找Id。它会自行处理,因此目前它会查找#chart1
并附加#
两次。
<script>
//This will look for #chart1
$.jqplot('chart1', [data], options );
</script>
“通过使用目标 id 调用
$.jqplot()
插件来创建实际情节”
答案 1 :(得分:1)
jqplot将元素id作为参数而不是id选择器,因此$.jqplot('#chart1',
应为$.jqplot('chart1',
等。