簡體   English   中英

使用事件處理程序代替onClick觸發API函數

[英]Use Event Handler Instead of onClick to Fire API Function

我有一個簡單的復選框。

<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(function(e){之后,但是我現在無知了。

我可以看到代碼的一個問題。

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

您沒有使用來引用元素的ID。 正確的方法應該是轉義特殊字符

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

或者通過使用jQuery包裝器包裝dom對象

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

兩者都將有助於找到您在下面用作上下文的堆棧

$('.myCheckbox',stack);

事件處理程序應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM