javascript - 谷歌电子表格如何在不改变焦点的情况下检测单元格点击

标签 javascript jquery google-sheets

我正在制作我自己的基于网络的电子表格。我有它检测公式和其他单元格引用。我想做的下一步是...

虽然我的功能栏处于事件状态(处于焦点状态),但如果我的第一个字符是等号,并且我单击另一个单元格,我希望能够检测到该单元格然后返回到公式栏并插入该单元格位置。

我遇到的问题是弄清楚如何在单元格不获得焦点的情况下跟踪从公式栏到单元格的移动。其余的我不会有任何问题。我在 JavaScript 中完成了大部分工作,并使用了相当多的 jQuery。我只是还没有弄清楚要跟踪哪些事件。

至于示例,我正在使用的网站已被锁定以进行开发,但是制作 Google 电子表格甚至使用 Excel,您应该看到我正在谈论的示例。

公式栏是文本输入,所有的单元格都在一个表格里,都是文本输入。

最佳答案

使用“mousedown”事件并防止立即传播。这应该可以防止出现焦点,允许您引用文本输入但不向其发送焦点。

$(".cell input[type=text]").mousedown(function(event){

    if($("#formulaBar").val()[0] == "+"){

        event.stopImmediatePropagation();

        var cell = $(this).parent();
        var row = cell.attr("data-row");
        var col = cell.attr("data-column");

        //Do something with the formula bar
    }

});

我假设 HTML 标记是这样的:

<td data-row="0" data-column="0">
    <input type="text" />
</td>

关于javascript - 谷歌电子表格如何在不改变焦点的情况下检测单元格点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15441535/

相关文章:

javascript - 未捕获的语法错误将多个值传递给函数

javascript - 测试检查数组是否原地反转

javascript - 捕获对数组中具有 ID 的元素的点击

javascript - 如何在 ASP.Net MVC 中开始使用 jQuery?

jquery - 来自 AJAX 请求的 jqPlot ASP.NET 中的 dataRender

javascript - 获取事件单元格的行和列不起作用

google-sheets - 用于多列条件的 Google 电子表格 Arrayformula

javascript - 获取 Canvas 鼠标在 Canvas 上的位置

google-sheets - 带有嵌套 if 语句的 Google Sheets ARRAYFORMULA

javascript - jQuery 生成的 html 上的事件