0

私は要素を持っています

<span id="1">Element</span>

javascriptを使用してブートストラップポップオーバーを初期化することにより、ポップオーバー対応の要素として作成しました

  $('#how2').popover({
     html:true,
     placement:"right",
     trigger:"click",
     content:"somecontent",
     title:"sometitle",        
    });

次に、「somecontent」には、<script></script>コンテンツが

$(".popover-close-button").click(function(){
  $(this).parent().parent().remove(); //remove the .popover element
});

その関数は、作成された「.popover」要素全体を削除するために、「sometitle」で定義された X (閉じる) ボタンにクリック リスナーを提供します。

トグルが機能します。id="1"要素をクリックすると、ポップオーバーが表示されます。もう一度クリックすると、ポップオーバーが非表示になります。Xボタンをクリックすると問題が発生します。ポップオーバーは非表示になります (実際には削除されます) が、id="1"要素をクリックしてポップオーバーを表示しても何も起こりません。ポップオーバーは2 回目のクリックでのみ表示されます。

なぜそのようなことが起こるのかを知りたいです。ブートストラップはグローバル javascript 変数を使用してポップオーバーのオン/オフ状態を決定しますか?

注: DRY の目的$(this).parent().parent().remove();で選択されています。$("#1").popover("hide")ポップオーバー内にロードされたコンテンツは、他の場所でも使用されることが期待されます。したがって、「#1」をそこに置くことは受け入れられません。

4

3 に答える 3

0

試す

.closest()

$(".popover-close-button").click(function(){
      $(this).closest('.popover').remove(); //remove the .popover element
});

また

。両親()

$(".popover-close-button").click(function(){
  $(this).parents('.popover').remove(); //remove the .popover element
});
于 2013-08-25T15:04:00.167 に答える