如何将事件处理程序传递给函数

时间:2018-12-04 12:24:39

标签: javascript jquery event-handling eventtrigger

我有一个带有“活动状态”列的网格,当用户单击刻度时,它变为十字形,反之亦然,以显示真或假状态。如下所示

function colActiveDeactiveTypeFormatter(cellvalue, options, rowObject) {

        var retVal;
        if (cellvalue) {
            retVal = "<div class='btn-gridtick' id='" + rowObject.TypeID + "' onclick='grdType_onActiveDeactive(\"" + rowObject.TypeID + "\")' />";
        } else {
            retVal = "<div class='btn-gridcross' id='" + rowObject.TypeID + "' onclick='grdType_onActiveDeactive(\"" + rowObject.TypeID + "\")' />";
        }
        return retVal;
    }

我遇到的问题是以下功能。我需要仅在单击保存按钮时才能将状态写入SQL,这是可行的。但是,当我检测到事件处理程序被触发时,该状态如何存储,因为当我返回并第二次单击以停用/激活状态时,它会记住第一次触发的事件的状态,因此当我写到SQL第二次错误输入状态。我在做什么错了?

function grdType_onActiveDeactive(TypeID) {
        var element = $(this.event.target);
          $(element).toggleClass('btn-gridtick');  // i think the problem is within this statements,but if i remove this piece of code it doesnt toggle my classes
          $(element).toggleClass('btn-gridcross');
        $('#btnSaveBranch').click(function () {
             WCF.juiceAjax.Update(current.ID, parseInt(TypeID, 10), function (result) {

                 if (result) {
                //     //   alert(result);

                 $(element).toggleClass('btn-gridtick');
                 $(element).toggleClass('btn-gridcross');

                }
             }, siteTools.onWebServiceError);
             })
    }

0 个答案:

没有答案