focusin事件.addclass

时间:2015-04-02 14:32:16

标签: javascript jquery html css

我有一个包含这样的列的数据表

这是我的HTML

<td class="orders-options column-invoice">
    <strong>
        <a class="row-title" href title="View detail">78060</a>
    </strong>
    <div class="locked-info"></div>
    <div class="row-actions">
        <span class="edit">Edit</span>
        <span class="view">View</span>
    </div>
</td>

我想在用户鼠标悬停时显示某些选项,例如“编辑”或“查看”。我的计划是添加类,以便它的可见性:隐藏的更改;可见;根据CSS文件。

这是我的JS

$("td.orders-options").focusin(function() {
  $(this).find(".row-actions").addClass('visible'); 
});
$("td.orders-options").focusout(function() {
  $(this).find(".row-actions").removeClass('visible'); 
});

然而,这似乎对html没有任何影响。 另外,我很好奇这个函数是仅在焦点上改变类还是在其他未聚焦的函数上改变所有类

3 个答案:

答案 0 :(得分:1)

您可以使用mouseovermouseout或简单hover

$("td.orders-options").mouseenter( function() {
     $(this).find(".row-actions").addClass('visible'); 
}).mouseleave( function() {
     $(this).find(".row-actions").removeClass('visible'); 
});

而不是可见性,在css中切换display属性。因为visibility:hidden会占用空间,但它是隐藏的。

hover而言,它将如下:

$("td.orders-options").hover( function() {
     $(this).find(".row-actions").addClass('visible'); 
} ,function() {
     $(this).find(".row-actions").removeClass('visible'); 
});
  

更新:添加DEMO

$("td.orders-options").hover( function() {
  console.log("Rias");
 $(this).find(".row-actions").addClass('visible'); 
} ,function() {
 $(this).find(".row-actions").removeClass('visible'); 
});
.row-actions.visible {
  display: block;
}

.row-actions {
  display: none;
}
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<table>
<td class="orders-options column-invoice">
<strong>
    <a class="row-title" href title="View detail">78060</a>
</strong>
<div class="locked-info"></div>
<div class="row-actions">
    <span class="edit">Edit</span>
    <span class="view">View</span>
</div>
</td>
  </table>

答案 1 :(得分:1)

您应该使用.hover().hover()方法指定当鼠标指针悬停在所选元素上时要运行的两个函数:

$("td.orders-options").hover(function(){
  $(this).find(".row-actions").addClass('visible'); 
},function(){
  $(this).find(".row-actions").removeClass('visible');
});

答案 2 :(得分:1)

使用toggelclass轻松实现目标

$("td.orders-options").hover( function() {
     $(this).find(".row-actions").toggleClass('visible'); 
});