1

检查代码。

<li>one <a href="#" class="opt">delete</a>
        <div class="popup">
            <span class="tip"></span><a href="#" class="btn">deletebutton</a></div>
    </li>

用于隐藏/显示的代码div.popup

$('.opt').live('click', function(e) {
    e.preventDefault();
    $(".popup").slideUp();
    $(this).closest("li").find(".popup").stop(true, false).slideToggle();
});

在单击删除以打开每个div.popup但第二次单击已打开div.popup会使span.tip消失。不刷新页面就不再出现。

$(".popup").slideUp();

我发现问题是由于这段代码造成的。我正在使用此代码隐藏.popup单击任何删除锚点时打开的所有其他代码。我是 jQuery 的新手。任何人都可以建议一种替代方法来div.popup单击任何隐藏兄弟姐妹。

谢谢..

4

2 回答 2

1

问题是,在 slideToggle 期间,jQuery 将弹出元素更改为“overflow-x: hidden”,因此超出边界的提示元素保持隐藏状态。我对 jsfiddle 进行了更新,以便它在弹出 div 中包含提示元素。动画看起来有点不同,但我相信你可以通过一些技巧让它看起来像以前一样。http://jsfiddle.net/6vKct/5/(我将提示更改为蓝色背景,以便更明显)

我变了

  • 弹出 div 顶部从“20px”到“15px”
  • 提示 div 顶部从“-5px”到“0px”
  • 使 btn 元素相对定位
  • 通过将顶部设置为“5px”将 btn 元素向下移动
  • 将背景颜色样式从整个弹出 div 移至 btn

实际上,我只是让弹出 div 更大,将其向上移动并将尖端移动到其中。

于 2011-11-27T06:35:48.633 回答
0

添加停止(真,真)

http://jsfiddle.net/6vKct/2/

于 2011-11-27T06:17:05.533 回答