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ますが、開いたものを2回クリックdiv.popupすると、span.tipが消えます。ページを更新しないと表示されなくなります。

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

問題はこのコードが原因であることがわかりました。私はこのコードを使用して.popup、削除アンカーのクリックで開いた他のすべてを非表示にしています。jQueryは初めてです。div.popup誰かがクリックしたときに兄弟を非表示にする別の方法を提案できますか?

ありがとう..

4

2 に答える 2

1

問題は、slideToggle中に、jQueryがポップアップ要素を「overflow-x:hidden」に変更しているため、境界の外側にあるtip要素が非表示のままになることです。ポップアップdiv内にtip要素が含まれるようにjsfiddleを更新しました。アニメーションの見た目は少し異なりますが、少し細かく調整することで、以前のように見せることができると確信しています。http://jsfiddle.net/6vKct/5/(より見やすくするために、先端を青色の背景に変更しました)

私が変更され

  • 「20px」から「15px」へのポップアップdivトップ
  • 「-5px」から「0px」へのチップdivトップ
  • btn要素を相対配置にしました
  • 上を「5px」に設定して、btn要素を下に移動しました
  • 背景色のスタイルをポップアップdiv全体からbtnのみに移動しました

実際には、ポップアップdivを大きくし、上に移動して、その中の先端を移動しました。

于 2011-11-27T06:35:48.633 に答える
0

stop(true、true)を追加します

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

于 2011-11-27T06:17:05.533 に答える