选择行禁用/启用文本选择

时间:2011-07-08 02:15:53

标签: javascript jquery

我有这个代码,当按下shift键时选择多行。但是每当选择开始时,表文本总是被选中,因此我尝试添加disableSelection();到表并重新启用它一次鼠标。但是,它不起作用,文本仍然被选中。非常感谢任何帮助。

$(".tableGrid tr").live("click", function(event) {
    if( event.shiftKey ) {
        $(".tableGrid").disableSelection( );
    }
    var tableRow = $(this).closest("tr").prevAll("tr").length + 1;
    if ($(this).hasClass("rowSelected")) {
        event.shiftKey ? $(this).removeClass("rowSelected") : $(".tableGrid tr").removeClass("rowSelected");
    }
    else {
        if( !event.shiftKey ) {
            $(".tableGrid tr").removeClass("rowSelected");
        }
        $(this).addClass("rowSelected");
    }

    if( event.shiftKey ) {
        var start = Math.min(tableRow, lastSelected);
        var end = Math.max(tableRow, lastSelected);
        for( var i=start; i<end; i++ ) { $(".tableGrid").find("tr").eq(i).addClass("rowSelected"); }
    }
    else {
        lastSelected = $(this).closest("tr").prevAll("tr").length + 1;
    }
}).mouseup(function( ) {
    $(".tableGrid").enableSelection( );
});

1 个答案:

答案 0 :(得分:0)

要禁用特定DOM元素的文本选择,您可以尝试:

var element = document.getElementById('content');
element.onselectstart = function () { return false; } // ie
element.onmousedown = function () { return false; } // mozilla