防止在表格中的一系列列之外单击

时间:2012-09-28 13:55:48

标签: jquery

我要做的是用户只能点击表格中的特定列。例如,在小提琴中的例子仅在第2列到第15列。在时间注册模块中的前两周。

我尝试使用:lt()函数,但这只适用于它看起来的第一行。

http://jsfiddle.net/KvdM/FxmbB/1/

4 个答案:

答案 0 :(得分:2)

你可以查看td的.index()以查看它是否在2到15之间 - 根据需要调整数字。

$('#sch').on('click', 'td', function() {
    var col = $(this).index();
    if (col > 1 && col < 16) {
        alert('clickable row = ' + col );
    } else {
        return false
    }
});

http://jsfiddle.net/jJpnr/

答案 1 :(得分:1)

可以通过精美的css选择器完成:demo http://jsfiddle.net/FxmbB/12/

修改您的功能如下

$(function() {
    addRow();
    addRow();
    addRow();
    $('#sch td:nth-child(n+3):nth-child(-n+16)').on('click', function() {
        alert($(this).attr('id'));
    });
});​

答案 2 :(得分:0)

这个小提琴怎么样http://jsfiddle.net/FxmbB/6/? 基本上我只是将事件处理移动到声明端,并仅在适当的单元格上注册事件。

答案 3 :(得分:0)

在这里:http://jsfiddle.net/FxmbB/7/

检查$(this)的索引。如,

$('#sch').on('click', 'td', function() {
        alert($(this).attr('id'));
        if ($(this).index() >1 && $(this).index() < 16){
            alert("OK. You can click on that");
        }
});