javascript - Expand div双效JQuery中的展开按钮

标签 javascript jquery html

这里有一个小问题。我有一个表,当我想单击运行时,该表应该展开,而且同一行中有一个展开按钮,它也应该展开一个 div。

问题:当我单击该行时,一切正常,div 将滑入。当我单击按钮(位于表行中)时,会产生双重效果。所以 Contentdiv 会滑入,然后立即滑出。这是合乎逻辑的,因为单击按钮时我同时单击了两者(表格行+按钮),因此切换效果发生了两次,但我不知道如何以好的方式解决这个问题。

<tr class='header mySlideToggler'>
<td class='align-center'>$username</td>
<td>0 %</td>
<td>22 Aug 2014</td>
<td>$done / $quantity</td>
<td>$running</td>
<td>$untouched</td>
<td>
<a href='#' class='table-icon edit' title='Edit'></a>
<a href='#' class='table-icon expand mySlideToggler' title='Expand'></a>
<a href='#' class='table-icon delete' title='Delete'></a>
</td>
</tr><tr style='padding: 0'><td colspan='7' style='padding: 0'>
<div class='slideMe' style='display: none'><br><br><br></div></td></tr>

JQuery:

$('.mySlideToggler').click(function( event ){
    event.preventDefault();
    $(this).closest('tr').next().find('.slideMe').slideToggle();
});

那么我如何避免它的“双重效应”。

最佳答案

使用jQuery's event.stopPropagation() method防止单击 a 元素时 click 事件也在 tr 元素上触发:

[event.stopPropagation] prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event.

$('.mySlideToggler').click(function( event ) {
    event.stopPropagation();
    ...
});

关于javascript - Expand div双效JQuery中的展开按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25265220/

相关文章:

jquery - 最小高度 : 100%; not working with jQuery treeview Plugin

html - 在CSS中制作图像形状?

javascript - 客户端magento网站包含恶意代码,如何摆脱它?

javascript - 在没有表单的情况下使用 jQuery 和 Rails 定期 ping 服务器,更新表

javascript - 在元素加载时调用 javascript 函数

javascript - 单击链接时显示每个页面的内容

jquery - 从 Jquery 中的变量设置表单输入的值

jquery - 在水平 jquery 范围 slider 之前和之后放置文本

html - css滚动条的顶部和底部 Angular 没有改变

javascript - 如何使单击的选项卡及其内容处于事件状态,而其他选项卡处于非事件状态?