You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从外部jQuery文件调用HTML函数并在Mouseup后自动执行逻辑

实现外部JS完成Mouseup后自动执行HTML中的函数

我来一步步帮你搞定这个需求,核心就是把按钮绑定的逻辑抽成独立可调用的函数,然后在外部JS的Mouseup事件流程结束后直接触发它:

1. 把按钮点击逻辑抽成全局可访问的命名函数

首先修改你HTML里的脚本,把原来绑定在按钮点击上的代码拆成一个单独的命名函数,并且确保它能被全局访问(这样外部JS才能找到并调用它):

// 把原来的按钮点击逻辑抽成独立函数
function handleTimingSubmit() { 
  var sheetStates = sheet.getSheetStates(); 
  var rowsCount = 15; 
  var colsCount = 7; // 当前未使用,后续将用于testData.match
  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])) 
  let dataSum = dataArr.reduce((a, b) => a + b); 
  let isSameAsRowsCount = dataSum == rowsCount; 
  // 这里可以继续编写你后续要加的修改图标/图片的逻辑
}

// 原来的按钮点击绑定可以保留(如果需要临时测试),或者直接删掉按钮后移除这行
$("#J_timingSubmit2").click(handleTimingSubmit);

如果你的脚本是包裹在$(document).ready()里的,要确保函数能被外部访问,可把它挂载到window对象上:

$(document).ready(function() {
  // 挂载到window,确保外部JS能访问到这个函数
  window.handleTimingSubmit = function() {
    // 上面的逻辑代码
  };
});

2. 在timesheet_test.js的Mouseup事件中调用该函数

找到你timesheet_test.js里的Mouseup处理逻辑,在完成单元格背景色修改的代码之后,直接调用handleTimingSubmit()即可:

// 你的Mouseup原逻辑
Mouseup: 
if (targetStateValue === "earlyshift") { 
  var endCell = [14,curColHead.data("col")]; 
  var correctedCells = cellCompare(operationArea.startCell,endCell); 
  afterSelecting(ev,correctedCells); 
  // 在这里添加调用,自动执行HTML中的函数
  handleTimingSubmit();
}

3. 移除按钮(可选)

如果你完全不需要这个按钮了,直接删掉HTML里的<button class="J_sheetControl" id="J_timingSubmit2">Submit</button>就行。

关键注意点

  • 确保HTML里的脚本在timesheet_test.js之前加载,这样当外部JS执行Mouseup逻辑时,handleTimingSubmit函数已经存在了。
  • 确认sheet对象能被handleTimingSubmit函数访问到(比如sheet是全局变量,或者函数定义在能访问到sheet的作用域里)。

内容的提问来源于stack exchange,提问作者user11853168

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:56:59