根据复选框或切换选择在 Javascript 功能之间切换 (Tableau API)

Switch between Javascript functions based on Checkbox or Toggle selection (Tableau API)

我想使用复选框或切换复选框在两个 Tableau Javascript API 函数之间切换。

结果好坏参半。单个过滤器将在复选框中添加和删除。将多个值应用于过滤器时(例如,(filterName,[Value 1,Value 2],ADD)),它将不起作用。

它会运行当"connected"一个复选框拨动开关时第一个动作,但它不会切换回来return其他功能。

function filterMainViz(filterName, values) {
    var sheet = mainViz.getWorkbook().getActiveSheet();
    var updateType;
    if($('#'+values).is(":checked"))    {
        updateType = "ADD";
    } else {
        updateType = "REMOVE";
    }
    worksheetArray = sheet.getWorksheets();
    for (var i = 0; i < worksheetArray.length; i++) {
        worksheetArray[i].applyFilterAsync(filterName, values, updateType);
    }
} 

当我尝试应用此方法在两个函数之间切换时出现类似问题。它会 运行 第一个动作(检查或切换),但不会切换回来或 运行 第二个功能。

function switchMainViz() {
    var sheet = mainViz.getWorkbook().getActiveSheet();
    var updateType;
    if($('#').is(":checked"))    {
        chartPercent();
    } else {
        chartAmount();
    }
}

原来的chartPerce()是

function chartPercent() {

    mainWorkbook = mainViz.getWorkbook();
    // Set to Detail to Percent
    mainWorkbook.changeParameterValueAsync("Amount or Percent", "Percent").then(function () {
        alertOrConsole("'Chart Type' parameter set to Percent");
    });
}

原来的chartAmount()是

function chartAmount() {
    mainWorkbook = mainViz.getWorkbook();
    // Set to Detail to Amount
    mainWorkbook.changeParameterValueAsync("Amount or Percent", "Amount").then(function () {
        alertOrConsole("'Chart type' parameter set to Amount");
    });
}

您的 jquery 选择器中缺少 Id,就在此处 if($('#').is(":checked")) 函数 switchMainViz()

应该是if($('#'+YourId).is(":checked"));