1

私が持っているいくつかの Jquery スクリプトに問題があり、誰かが私を正しい方向に向けてくれることを願っています。

最初は非表示になっているリージョンがありますが、クリックすると内容が表示され、もう一度クリックすると内容が非表示になります。この領域内には、一連のハイパーリンクがあります。私が直面している問題は、これらのリンクがクリックされたときに、他の場所にリダイレクトするのではなく、コンテナーが再び閉じていることです。これが発生する理由はわかりますが、修正方法がわかりません。

関数:-

function toggleDisplay(itemToToggle, itemHeightOpen, itemHeightClosed) {
$(itemToToggle).toggle(
  function () {
    $(this).animate({ 'height': itemHeightClosed }).addClass('minus');
    },
      function () {
    $(this).animate({ 'height': itemHeightOpen }).removeClass('minus');
    });
 };

呼び出し:-

var heighttomatch = $('#inlineSummaryWrapper').height() + 28;
toggleDisplay('#inlineSummary', '1.2em', heighttomatch);

html:-

<div id="inlineSummary" class="displayToggle">
  <h2>Summary</h2>
  <div id="inlineSummaryWrapper">
   <a href="/mylink">the link</a>
  </div>
</div>

H2 を対象としたクリック アクション内に "The call" をラップしようとしましたが、コンテナーが自動的に開閉するという奇妙な効果があったため、どうすればよいかわかりません。

4

1 に答える 1

1

これはclick、リンク上のイベントが伝播するために発生します。で止めることができますevent.stopPropagation()

function toggleDisplay(itemToToggle, itemHeightOpen, itemHeightClosed) {
    $(itemToToggle).find('a').click(function (e) {
        e.stopPropagation();
    });
    ...
}
于 2012-02-29T10:17:56.243 に答える