我有一个简单的复选框。
<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) {
}
});
事件处理程序(我假设)在checkbox.click之后(函数(e){...但我正处于无能为力的时刻。帮助?
答案 0 :(得分:0)
我可以看到代码有一个问题。
var stack = $('%id%'),
checkbox = $('.myCheckbox',stack);
您没有使用#来引用元素的ID。正确的方法应该是逃避特殊字符
var stack = $('#\\%id\\%')
或用jQuery Wrapper包装dom对象
var stack = $(document.getElementById('%id%'))
两者都有助于找到您用作下面的上下文的堆栈
$('.myCheckbox',stack);
事件处理程序应该可以正常工作。