使用事件处理程序而不是onClick来激发API函数

Use Event Handler Instead of onClick to Fire API Function

本文关键字:API 函数 onClick 事件处理 程序      更新时间:2023-09-26

我有一个简单的复选框。

<div class="myCheckBox"><label><input type="checkbox" checked><span   class="label-text">My Label</span></label></div>

注意:HTML是一个堆栈的一部分,该堆栈已经分配了一个唯一的ID(将JS引用为%ID%。

我想把它连接到一个javascript函数。我知道我可以在HTML中使用onClick来实现这一点,但在这个用例中,我需要在javascript中使用一个事件处理程序来调用(正确的术语?)函数。

我的JS是

$(document).ready(function() {
    var stack = $('%id%'),
        checkbox = $('.myCheckbox',stack);
    function filterCheck(%id=filterName%, %id=values%) {
            var sheet = mainViz.getWorkbook().getActiveSheet();
            var updateType;
            if(checkbox.is(":checked"))    {
                updateType = "ADD";
            } else {
                updateType = "REMOVE";
                }
            worksheetArray = sheet.getWorksheets();
            for (var i = 0; i < worksheetArray.length; i++) {
            worksheetArray[i].applyFilterAsync(filterName, values, updateType);
            }
        }  
    }
    checkbox.click(function(e) {

    }
});

事件处理程序(我认为)在复选框后面。点击(函数(e){…但我现在不知所措。帮助?

我可以看到代码中的一个问题。

var stack = $('%id%'),
    checkbox = $('.myCheckbox',stack);

您没有使用#引用元素的id。正确的方法应该是转义特殊字符

var stack = $('#''%id''%')

或者用jQuery Wrapper 包装dom对象

var stack = $(document.getElementById('%id%'))

两者都将有助于找到您在下用作上下文的堆栈

$('.myCheckbox',stack);

事件处理程序应该可以正常工作。