如何在棘手的情况下禁用表格上的文本选择?

时间:2011-04-10 11:13:05

标签: jquery html-table selection textselection

我有一个基本的表格,如下:

<table>
    <tbody>
        <tr>
            <td>Column 1</td>
            <td>Column 2</td>
        </tr>
    </tbody>
</table>

在行上我有一个带有jQuery的双击功能:

$('tr').live('dblclick',function(){
    dosomething();
    return false;
});

我还有一个名为tablednd的插件,它在行上使用mousedown / up函数。 双击会导致单元格上的文本选择。

我该如何防止这种情况?

2 个答案:

答案 0 :(得分:10)

您不能使用select()事件,因为它仅限于输入元素。

相反,请在preventDefault()事件中尝试selectstart ...

$('tr').bind('selectstart', function(event) {
    event.preventDefault();
});

jsFiddle

或者,您可以使用CSS ...

tr {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

答案 1 :(得分:0)

尝试更改

$('tr').live('dblclick',function(){
    dosomething();
    return false;
});

$('tr').live('dblclick',function(e){
    e.preventDefault();
    dosomething();
    return false;
});

这应该可以防止双击在浏览器默认情况下执行任何操作。您应该在所有浏览器中测试此代码,但不确定它是否可以在任何地方使用。