2014-02-18 143 views
0

我有一个包含输入行的HTML表格。当我将鼠标悬停在行上时,我想展开该行并显示输入,然后在未徘徊时折叠。但是,我希望行开始折叠,并且如果输入中存在值,我不希望行折叠。悬停时显示和隐藏表格行,最初隐藏,如果输入不隐藏,则不会隐藏

这里是一个小提琴:

http://jsfiddle.net/4Hdge/

<table style="width:300px; background-color:#d3d3d3"> 
<tr id="filter" style="background-color:blue"> 
    <td><input id="search" placeholder="Search" style="width:100px"/></td> 
    <td></td> 
    <td></td> 
</tr> 
<tr> 
    <td>Jill</td> 
    <td>Smith</td> 
    <td>50</td> 
</tr> 
<tr> 
    <td>Eve</td> 
    <td>Jackson</td> 
    <td>94</td> 
</tr> 
</table> 


$("#filter").hover(

function() { 

     $("#search").show(); 

    }, 
function() { 

     $("#search").hide(); 

    } 
); 

回答

1

我要说的正确答案是给出两个答案的组合:)

//var tableRow = $("#search").parent().parent(); 
$("#search").hide(); /*hide the search input initially*/ 
$("#filter").hover(
    function() { 
    $("#search").show(); 
    }, 
    function() { 
    if($("#search").val().trim() == "") //only hide the search box is empty 
     $("#search").hide(); 
    } 
); 

编辑

$("#search").hide(); /*hide the search input initially*/ 
$("#filter").hover(
    function() { 
    $("#search").slideToggle(); 
    }, 
    function() { 
    if($("#search").val().trim() == "") //only hide the search box if it is empty 
     $("#search").slideToggle(); 
    } 
); 
+0

我可以使用jquery slideToggle使其更平滑吗? – user3147424

+0

是的,这是有效的。请参阅编辑 – Kiran

-1

你为什么不只是躲在搜索之前添加如果条件?

if($("#search").val()=="") $("#search").hide(); 
+0

它不会工作!如果用户输入的值已经隐藏,该如何输入:P – Ani

+0

它的工作原理请参考:http://jsfiddle.net/4Hdge/6/ –

+0

检查@AtanuCSE回答....这就是你写它的方法。 OP如何知道在哪里添加? – Ani

1

在这里你去:http://jsfiddle.net/4Hdge/7/

$("#search").hide(); 

$(".filter").mouseenter (function() { 

     $("#search").show(); 

}); 
$('.filter').mouseleave(function() { 

    $("#search").hide(); 

}); 
+0

我可以使用jquery slideToggle使其更平滑吗? – user3147424

+0

是的,这会更顺畅 – Ani

+0

我怎么能这样做,我的显示和隐藏显示/隐藏输入切换它当前使输入切换下来,但整个行迅速扩大 – user3147424

2

JSFiddle

$("#search").hide(); 

$("#filter").hover(

    function() { 

      $("#search").show(); 

    }, 
    function() { 
     if($('#search').val()=="") 
     $("#search").hide(); 


    } 
); 
+0

我可以使用jquery slideToggle使它更平滑吗? – user3147424