【发布时间】:2014-09-17 22:37:27
【问题描述】:
我正在尝试我在画面提供的JavaScript API Tutorial。当我到达过滤器部分时,我有点迷茫,希望得到一些指导。我创建了一个小提琴并将代码缩减到最低限度:
var placeholderDiv = document.getElementById("tableauViz");
var url = "http://public.tableausoftware.com/views/WorldIndicators/GDPpercapita";
var options = {
hideTabs: true,
hideToolbar: true,
width: "800px",
height: "400px",
onFirstInteractive: function () {
workbook = viz.getWorkbook();
activeSheet = workbook.getActiveSheet();
}
};
viz = new tableauSoftware.Viz(placeholderDiv, url, options);
function filterSingleValue() {
activeSheet.applyFilterAsync(
"Region",
"The Americas",
tableauSoftware.FilterUpdateType.REPLACE);
}
当我运行 consol 调试器时,我收到以下错误:
"Uncaught ReferenceError: filterSingleValue is not defined "
我不确定这意味着什么,但我猜测 filterSingleValue() 函数实际上并没有传递任何数据。是因为我没有将第一部分包装在函数中吗?
我的目标是让我的过滤器按钮过滤“美洲”地区。感谢任何指导或建议。这是我的fiddle
【问题讨论】:
-
你在哪里调用filterSingleValue。无论发生在哪里,都是在定义 filterSingleValue 函数之前。
-
jsfiddle.net/6wjv502o/1 我让它在不使用 onclick 的情况下工作,而是使用手动侦听器。我觉得我太累了,看不到明显的错误。
-
stackoverflow.com/questions/20205091/… 也许只是不好用。我从来没有做过,但不知道有问题。无论哪种方式,您的 Tableau JS 看起来都不错。
-
感谢 Leeish,指向其他 stackoverflow 文章的有趣链接。我浏览了其他一些文章,偶然发现了this 文章,进一步解释了在 html 和 js 中调用函数的区别。很有帮助。干杯。