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 的单击操作中,但这对容器自行打开和关闭产生了奇怪的影响,所以我不确定该怎么做。

4

1 回答 1

1

This happens because the click event on the link propagates. You can stop it with event.stopPropagation().

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