将所有文件的相似代码更改为一个

Changing Similar Code Into One for All Files

本文关键字:一个 文件 代码 相似      更新时间:2023-09-26

我有大约30个不同的模块为我的CMS,以下是代码包含在每个模块的javascript除了一个只是一些变化,不知道是否有一个更简单的方法或更多的东西,我可以做的是消除不得不复制相同的代码一遍又一遍,以防我不得不回去改变的东西,我只能做一次。但是页面上不同的部分是任何表示单词模板在每页上不同的东西,因为它代表模块名称。我不知道能不能把东西改成itemID之类的

$('.ask').jConfirmAction( {
    question : "Are you sure you want to delete the selected row?", 
    yesAnswer : "Yes", 
    cancelAnswer : "No", 
    onYes: function(evt) { 
      templates(evt.target); 
    }
});
$('.ask2').jConfirmAction( {
    question : "Are you sure you want to delete all selected rows?",
    questionClass: "question2", 
    onYes: function(evt){
        templatesArray(evt.target); 
    }
});
function templates(whatsThis) {
    var templateID = $(whatsThis).parents('td').find('img').attr('id');
    var dataString = 'templateID=' + templateID + '&deleteTemplate=True'; 
    var iRow = oTable.fnGetPosition( $(whatsThis).parents('tr').get(0));
    $.ajax({ 
        type: "POST", 
        url: "processes/templates.php", 
        data: dataString,
        success: function(data) {
            if (data.errorsExist) {
            } else {
                oTable.fnDeleteRow(iRow);     // remove the row from the table
                if(oTable.fnSettings().fnRecordsTotal() == 0) {
                    $('.bt_red').remove();
                    $('.bt_blue').remove();
                }
                if(oTable.fnSettings().fnRecordsTotal() <= 10) {
                    $('.bt_blue').remove();
                }
            } 
        }
    });
}

function templatesArray(whatsThis) {
    var myNewArray = new Array(); 
    var aRow = new Array();
    $('input:checkbox[name="templates"]:checked').each(function(i) { 
        myNewArray.push($(this).val());
        aRow.push($(this).closest('tr')[0]);
    }); 
    var dataString = 'templatesArray=' + myNewArray + '&deleteTemplatesArray=True'; 
    $.ajax({ 
        type: "POST", 
        url: "processes/templates.php", 
        data: dataString,
        success: function(data) {
            if (data.errorsExist) {
            } else {
                $(whatsThis).parents("tr").eq(0).hide(); 
                for (i in aRow)  // loop over the array of row indexes
                  oTable.fnDeleteRow(aRow[i]);
                if(oTable.fnSettings().fnRecordsTotal() == 0) {
                    $('.bt_red').remove();
                    $('.bt_blue').remove();
                }
                if(oTable.fnSettings().fnRecordsTotal() <= 10) {
                    $('.bt_blue').remove();
                }                      
            } 
        }
    });
}

代码正在做不同的事情并访问不同的对象onYes。我不认为这两者可以结合起来。也许其他一些类似的功能可以,但不是那些张贴。