【问题标题】:Is there a way to select multiple table cells with single javascript click?有没有办法通过单击一次 javascript 来选择多个表格单元格?
【发布时间】:2016-07-27 23:33:39
【问题描述】:

我基本上已经通过javascript增加了网页上的光标图标大小,并且我有一个表格。现在,我希望表格中所有带有光标图标的重叠元素都可以更改其背景颜色(单击和拖动时)。这意味着更改 mousedown 或 mouseover 当前能够选择的区域并能够选择多个元素。有没有办法做到这一点,如果有怎么办?

点击代码如下:

     $('td').on('mousedown', function (e1) {
    loop();
    flag = 1
    $('td').on('mousemove', function (e2) {
        console.log(document.elementsFromPoint(e2.pageX, e2.pageY))
        if (flag == 1) {
            var tableCell = $(this);
            var setbox = $('.active').attr('id');
            //document.getElementById("tableBack").style.cursor="move";
            switch (setbox) {
                case "lPark":
                    //$(this).text('P');
                    $(this).css('background-color', 'green');
                    break;
            }
        }
    }
}

这是增加光标大小的代码:

var cursor = document.createElement('canvas'),
ctx = cursor.getContext('2d');

cursor.width = 100;
cursor.height = 100;
var centerX = cursor.width / 2;
var centerY = cursor.height / 2;
var radius = 40 ;

ctx.beginPath();
ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
ctx.fillStyle = 'green';
ctx.fill();
ctx.lineWidth = 1;
ctx.strokeStyle = 'black';
ctx.stroke();
//document.getElementById("tableBack").style.cursor="move";
// set image as cursor (modern browsers can take PNGs as cursor).
document.getElementById("tableBack").style.cursor = 'url(' + cursor.toDataURL() + '), auto';

这是我正在尝试做的图片

http://imgur.com/a/i3pEp(对不起,我没有足够的积分来嵌入)

注意光标在 4 个单元格上,但只有 1 个被选中,我想全选 4 个。

【问题讨论】:

  • 能否提供代码sn-p?而且,重叠元素是什么意思?
  • 你能给我们看一些代码吗?
  • 光标点仍然是一个像素。大小只是帮助您查看指向的位置。假设您知道光标相对于单个点的大小和形状,您可以推断出光标的区域。
  • 我添加了代码,如何推断该区域并查看重叠的表格单元格(我知道它的大小和形状(它是一个圆圈))。
  • *&$# 是什么重叠的表格单元格。?这个问题一清二楚。请查看How to Ask

标签: javascript jquery html css


【解决方案1】:

我以某种方式试图理解您的查询。看,你当然可以做一件事。

有很多方法可以做到这一点。但是,这里有一个我建议的算法。

1) capture ctrl key pressed event and save a flag value (suppose boolean) in some hidden field say x;
  1.1) On Key down save true in x
  1.2) On Key up save false in x
2) now while it is running caputre your mouse click on cell
  if( x==true)
      add some highlight class on that cell (which is clicked)
  else
      remove some highlight class on that cell
3) now for you entire table/grid you have got your highlighted class on items you've selected

每个阶段都可以根据要求进行编码。希望能给大家一些启发。

【讨论】:

  • 我的代码已经这样做了,我希望能够选择多个被光标图标重叠的表格单元格,而不仅仅是一个表格单元格。
  • 很抱歉,我没有得到您的重叠概念。能不能说的更准确点。尝试从您的表格中显示一些屏幕截图。这可能会有所帮助。请务必描绘重叠的边缘。
  • 好的,我在我的帖子中添加了图片,它在这个链接上imgur.com/a/i3pEp 如果你能帮忙,我已经绞尽脑汁想弄清楚这一点,我在 js 方面不是很好,而且该项目即将到期。
  • 别担心,我会尽力帮助你的。保持积极向上的发展。干杯...
  • 好的!那么,关于你附加的图像,你想用那个巨大的绿色圆圈将所有相关的 3 个正方形(单元格)涂成绿色吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-25
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多