1

私は Twitter Bootstap テーマを使用しており、アコーディオン スタイルで折りたたみを実装するこの[コード]を作成しました。タイトルには、右に浮かぶ星を配置しました。ユーザーが星をクリックしたときにウィンドウをポップオーバーしたいのですが、アコーディオンのコンテンツを非表示または表示する必要はありません!

私がコーディングしたように、アコーディオンのコンテンツが開いているときに星をクリックすると、ポップオーバーが表示されますが、アコーディオンのコンテンツは非表示 (および反転) になります。これを無効にするにはどうすればよいですか?

4

1 に答える 1

1

これが私が思いついた解決策です。

$('#foo').popover({
   placement : 'right',
   content : 'some text'
});

$('#foo').click(function(){
   var myLink = $(this).parent().attr('href');
  var el = $(this).parent();
 el.attr('href','');
 setTimeout(function(){el.attr('href',myLink);},100)
});

ここで行っているのは、星がクリックされたときに、アコーディオン リンクを 100 ミリ秒間無効にしてから再度有効にすることです。理想的には、アコーディオンを無効にしてから、ポップオーバーが表示または閉じられたら有効にすることをお勧めします。しかし、これらのイベントを確認する方法が見つかりませんでした。

しかし、私はこのコードをしばらく使っていましたが、うまく機能しているように見えました。問題は見つかりませんでした。幸運を。

アップデート

ポップオーバーがクリックされたときにアコーディオンが動かないようにします。ポップオーバーのクリックをリッスンしています。ポップオーバーがクリックされた場合、アコーディオンを100ミリ秒間無効にする前と同じことをしています。乾杯。

$('#foo').popover({
   placement : 'right',
   content : 'some text'
});

$('#foo').click(function(){
   var myLink = $(this).parent().attr('href');
   var el = $(this).parent();
   el.attr('href','');
   setTimeout(function(){el.attr('href',myLink);},100);
});

$(document).ready(function(){
   $('#accordion2').on('click', '.popover', function() {
       var myLink = $(this).parent().attr('href');
       var el = $(this).parent();
       el.attr('href','');
       setTimeout(function(){el.attr('href',myLink);},100);
  });
});
于 2013-10-02T15:48:21.907 に答える