多次调用Javascript函数

多次调用Javascript函数,javascript,jquery,html,Javascript,Jquery,Html,我在我的项目中使用了jquery。我需要使用jquery在两行之间插入几行。这对我来说似乎很棘手,所以我使用hide()和show()函数在单击时显示行。但是,需要的是,第一次单击时,它会显示额外的行,第二次单击时,额外的行应该隐藏 为此,我编写了如下javascript函数: activityDetailTableExpand: function (aData, ref) { var indexOfClick = ref.parentElement.rowIndex; cons

我在我的项目中使用了jquery。我需要使用jquery在两行之间插入几行。这对我来说似乎很棘手,所以我使用hide()和show()函数在单击时显示行。但是,需要的是,第一次单击时,它会显示额外的行,第二次单击时,额外的行应该隐藏

为此,我编写了如下javascript函数:

activityDetailTableExpand: function (aData, ref) {
    var indexOfClick = ref.parentElement.rowIndex;
    console.log(indexOfClick);
    if (aData[6] > 1) {
        if (!$("#activityDetailTable").find("tbody tr").eq(indexOfClick + 1).is(":visible")) {
            for (var j = 0; j < aData[6]; j++) {
                $("#activityDetailTable").find("tbody tr").eq(indexOfClick + j).show();
            }
        } else {
            for (var j = 0; j < aData[6]; j++) {
                $("#activityDetailTable").find("tbody tr").eq(indexOfClick + j).hide();
            }
        }
    }
    console.log(aData);
},

在我的例子中,activityDetailTable中的一个名为

听起来像是你绑定了两次click事件。这是我的第一个想法,花了几个小时试图找到答案。事实并非如此。因为正是这段代码处理了两次点击。在一个表行上,它可以正常工作(列的最后一行),但是对于介于两者之间的表行,它不工作。这是不可能的。当您单击一次时,jquery不会神奇地触发此事件两次。它被处理了两次,只有绑定两次(或单击两次)才会发生这种情况。显示用于绑定此事件的代码。(以及执行该代码的代码)什么执行bindClick?请查看编辑。添加了我使用的bindClick函数
    bindClick : function(tableId,tableName,dialogId){
            if(tableId=='approvals-table'){
                $("#"+tableId+" tbody tr").on("click", function(event){
                    var aData = tableName.fnGetData(this);
                    var functionMap={
                            'approvals-table': function(){com.impetus.isas.getDeviceForApprove(aData);},
                        };
                    functionMap[tableId].call(this);
                    com.impetus.isas.openDetailDialog(dialogId);
                      }).css({
                          'cursor' : 'pointer'
                      });
            }else{
                $("#"+tableId+" tbody tr").find('td:gt(0)').on("click", function(event){
                    var aData = tableName.fnGetData(jQuery(this).parent('tr')[0]);
                    var functionMap={
                            'users-table': function(){com.impetus.isas.getUserDetail(aData[0]);},
                            'devices-table': function(){com.impetus.isas.getDeviceDetail(aData[0]);},
                            'approvals-table': function(){com.impetus.isas.getDeviceForApprove(aData);},
                            'activityDetailTable': function(){com.impetus.isas.activityDetailTableExpand(aData, this);},
                        };
                    functionMap[tableId].call(this);
                    com.impetus.isas.openDetailDialog(dialogId);
                      }).css({
                          'cursor' : 'pointer'
                      });
            }
        },