javascript - 限制多个表上单元格的选择

标签 javascript jquery html

我的目标是使用 jquery 限制每个显示表格中选定单元格的数量。

通过一些修补,我设法获得一些工作代码来限制选择,但无法弄清楚如何区分表格(即每个表格最多可以选择 4 个单元格)。

如有任何帮助,我们将不胜感激。

这是link到 fiddle 。

我还在下面发布了jquery。

谢谢。

function selectCount () {
var num1;
 num1 =  $.grep($('td'),function(TD){
   return $(TD).css('background-color') == 'rgb(153, 153, 153)' ;
}).length;   
return num1;
}

$(function () {
var isMouseDown = false; 



 //    $(#$(this).closest('table').attr('id') "td")

$("#our_table td")
.mousedown(function () {
  isMouseDown = true;

    var sCount = selectCount();


    if (sCount < 4 || $(this).css('background-color')== 'rgb(153, 153, 153)')
  $(this).toggleClass("highlighted");
  return false; // prevent text selection
})

.mouseover(function () {       
   var foo = selectCount();
  if (isMouseDown && sCount < 4 ||isMouseDown &&  $(this).css('background-color')== 'rgb(153, 153, 153)') {
    $(this).toggleClass("highlighted");
  }
});

$(document)
.mouseup(function () {
  isMouseDown = false;
});
});

最佳答案

jQuery('table').on('click', function (e) {
    var ourTable = jQuery(e.target).closest('table');
    var sCount = ourTable.find('.highlighted').length;

    if (sCount < 4 || $(e.target).hasClass('highlighted')) {
        $(e.target).toggleClass("highlighted");
    }
  e.preventDefault();
});

这是 fiddle http://jsfiddle.net/h18yr46a/7/

您实际上可以将整个内容减少到四行:

jQuery('table').on('click', function (e) {
    if (jQuery(this).find('.highlighted').length < 4 || $(e.target).hasClass('highlighted')) {
            $(e.target).toggleClass("highlighted");
    }
    e.preventDefault();
});

关于javascript - 限制多个表上单元格的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27675609/

相关文章:

php - 删除没有子 DOM PHP 的元素

html - 我如何在按钮菜单上添加声音

javascript - MDN JavaScript 继承重温 - 理解示例

javascript - 在按钮的onclick属性中传递php数组并在javascript中读取它

javascript - Chromium忽略css样式或属性高度中的表格高度

javascript - knockout 格式数据而不绑定(bind)处理程序

javascript - 使用node.js、MySQL 和 Jade 在浏览器中显示数据库内容

javascript - expressjs fetch 中的嵌套异步/等待

javascript - 如何在 jQuery/Javascript 中删除此突出显示脚本

jquery - 当我点击链接时显示带有浪费垂直空间的 div