javascript - 如何将按钮单击转换为单独的 js 文件中的 mouseup 事件

标签 javascript jquery function mouseup

如何在单独的 js 文件中将按钮单击转换为 mouseup 事件。

我在 html 文件中有这个按钮代码(可以正常工作):

<button class="J_sheetControl" id="J_timingSubmit2">Submit</button>

单击时,它会在外部 js 文件中运行一个函数(?):

$("#J_timingSubmit2").click(function(ev){

  var sheetStates = sheet.getSheetStates();
  var rowsCount = 15;
  var colsCount = 7;
  var timesheetrowsdata = "";
  var timesheetcoldata = "";

  for(var row= 0, rowStates=[]; row<rowsCount; ++row){
    rowStates = sheetStates[row];
    timesheetrowsdata += rowStates+(row==rowsCount-1?'':',');
  }

  timesheetcoldata = timesheetrowsdata.replace(/,/g, '');

  const testData = timesheetcoldata;

  const dataArr = testData.match(/.{1,7}/g)
  .map(s => Number(s[0])) // Only take the first char as a Number

  let dataSum = dataArr.reduce((a, b) => a + b);

  let isSameAsRowsCount = dataSum == rowsCount;
});

我想对其进行转换,以便它在单击表头(在 mouseup 事件上)时运行。 该函数位于第二个js文件中(函数调用需要插入到if语句的末尾):

thisSheet.delegate(".TimeSheet-colHead","mouseup.umsSheetEvent",function(ev){
if(!operationArea.startCell){
  return;
}

var curColHead = $(ev.currentTarget);

const targetStateValue = localStorage.getItem('shiftstatus');

if (targetStateValue === "earlyshift") {
  var endCell = [14,curColHead.data("col")];
  var correctedCells = cellCompare(operationArea.startCell,endCell);
  afterSelecting(ev,correctedCells);
  //code needs to go here                               
}

我尝试重命名它,使其看起来更像一个标准函数,例如列检查器() 但这只是给我错误,它不是上述 mouseup 事件的函数。

我已经解决了这个问题,但它似乎不是最简洁的方法(我已经在应用程序中使用了类似的两次)。如果没有人有更好的解决方案,我将用它作为答案。

var but_Open3 = document.getElementById("J_timingSubmit2");
J_timingSubmit2.click(); 

最佳答案

使用 jQuery,您只需为 mouseup 事件添加另一个事件监听器。

$("#J_timingSubmit2").mouseup( handler);
$("#J_timingSubmit2").on('mouseup', handler);

关于javascript - 如何将按钮单击转换为单独的 js 文件中的 mouseup 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57565388/

相关文章:

javascript - 为什么 Skrollr 不允许我在移动设备上滚动?

arrays - 创建一个函数来迭代和循环 Swift 中的数组

javascript - 从命令行运行时 Cypress 测试失败,但如果从 Cypress 测试运行程序运行则通过

Javascript - 切换元素只能以一种方式工作! URL append 还需要帮助

jquery - 如何使用backbone.js保存集合

javascript - 如何使用 jQuery 或 Javascript 添加元素

python - 将 exec()/compile() 与用户输入一起使用

c - 如何在函数声明语句中使用二维数组?

Javascript 将警报转换为字符串

javascript - Web 扩展 API 上的 JQuery