1

我有一张有很多行的桌子。该表在那里,因此人们可以通过复制/粘贴快速获取数据。麻烦的是你很容易忘记你上次从哪里抓取文本(即哪一行)。所以我想要一个功能,当您双击一行(突出显示要复制的一些文本)时,它会简单地突出显示该行并保持突出显示,直到您再次双击。

我非常热衷于使用 Jquery。

这是我到目前为止所得到的:

           $("tr").dblclick ( function() {
                var foo = (this);
                $(foo).css("background-color","#333");
                $(foo).css("color","white");
            });
            $("tr").mouseleave ( function() {
                var foo = (this);
                $(foo).css("background-color","#333");
                $(foo).css("color","white");
            });

双击有效。但是鼠标离开会突出显示每一行。我可以将一个变量分配给我双击的那一行,然后仅将.mouseleave函数应用于该行吗?或者是否有另一个更适合我想要的功能。

谢谢。

4

3 回答 3

2
 $("tr").dblclick ( function() {


// Unselect the previous selected row Logic
$(this).siblings().removeClass("Clicked");//Assuming the <tr> are at same level.

 //$(this).parent().children("tr").not(this).removeClass(".Clicked");    

 $(this).toggleClass("Clicked");

});

并将其更改 $("tr").mouseleave ( function() {});$("document").on( "mouseleave","tr.Clicked",function() {});

此外,拥有像这样的 css 也很好 -

.Clicked{
background-color : #333;
color : white;

}
于 2013-05-27T04:37:35.007 回答
0

如果你能用最好JQuery UI Highlight

$("#myTbl tr:first-child").effect("highlight", {}, 3000);

检查 亮点

于 2013-05-27T05:23:35.503 回答
0

您可以添加一个标志来识别哪个是双击的。如果标志为真,则仅应用 mouseleave 函数。

如果您在这种情况下分配事件,您还必须应用委托方法。像所有的tr或所有的li。

另外,我在这里没有理解 mouseleave 事件的含义,因为您正在执行与 dblclick 事件相同的操作。

   var allTr=$('#tableId').find('tr');
    $('#tableId').on('.dblclick','tr',function() {
        var foo = $(this);

        //to remove css and attribute from privous selected tr
        allTr.css({"background-color","#333","color","white"}).removeData('clicked')
       //if you want to remove css when you double click again on same tr than use this if condition other wise dont use.
       if(!foo.data('clicked')){
           foo .css({"background-color","#333","color","white"}).data('clicked',true);
       }
    }).on('mouseleave','tr',function() {
        var foo = $(this);
        if(foo.data('clicked')){
          foo .css({"background-color","#333","color","white"});
        }
    });
于 2013-05-27T04:38:15.020 回答