好的,请原谅我冗长的头衔。我的代码片段将位于页面底部。
我创建了一个javascript程序,可以将数据透视表的行和列更改为预定义的值。最初我使用$(".Dropdown").val(value).trigger("change");
做了这个,只要我没有使用我的javascript来插入值就行。{/ p>
输入页面的IE <onclick="presetFunction('count', 'Heatmap', ['ClassNum'], ['Grade'])">
工作正常。但是,使用javascript将上面的行放在页面上不会。
当我查看控制台时,我收到此错误:“TypeError:opts.aggregators [aggregator.val(...)]不是函数”,我检查了我的类型(以防我的字符串解剖改变了类型)那不是问题。我检查了价值观,这也不是问题。
以下是我正在使用的代码snippits:
元素我将onclick附加到:
<li id="one" class="Barchart">
<a href="#one">Barchart<span>5</span></a>
<ul id="bchart" class="sub-menu">
</ul>
</li>
移动事物的Javascript:
function presetFunction(Agg, Rend, Col, Row) {
$(".pvtRenderer").val(Rend).trigger("change");
$(".pvtAggregator").val(Agg).trigger("change");
$(".label.label-info").each(function (index, element) {
test = $(element).html();
test = test.substring(6, test.length - 42);
if ((Col.indexOf(test)) != -1)
$(".pvtAxisContainer.pvtRows.ui-sortable").append(element);
else if (Row.indexOf(test) != -1)
$(".pvtAxisContainer.pvtHorizList.pvtCols.ui-sortable").append(element);
else
$(".pvtAxisContainer.pvtUnused.pvtHorizList.ui-sortable").append(element);
$(element).triggerHandler("");
});
}
在这里给出一个字符串进行测试:
function loadPresets() {
var presets = "\'count\', \'Bar Chart\', [\'ProfLastName\'], [\'Grade\']";
var sep = presets.indexOf(",");
var style = presets.substr(0, sep).trim();
presets = presets.substr(sep + 1, presets.length).trim();
sep = presets.indexOf(",");
var type = presets.substr(0, sep).trim();
presets = presets.substr(sep + 1, presets.length).trim();
sep = presets.indexOf("]");
var row = presets.substr(0, sep + 1);
presets = presets.substr(sep + 2, presets.length);
var col = presets.trim();
var link = '<li><a href=\"#\" id=\"b01\"><em>01</em>Teacher vs. Grade</a></li>';
$("#bchart").append(link);
$("#b01").click(function () {
presetFunction(style, type, row, col);
});
}
非常感谢任何帮助。 CF
答案 0 :(得分:0)
问题在于你在变量中有单引号。摆脱它们。
你的onclick看起来像这样
presetFunction( "'style'", "'type'", "'row'", "'col'");