1

我正在使用以下代码来切换工具提示

$('.call-out').toggle(
    function() { 
        $(this).find('.tip').addClass('tip-position').fadeIn("fast");
    },
    function() { 
        $(this).find('.tip').fadeOut("fast");
    }
);

在我的 .tip 中有一个带有一些锚点的列表,如何在单击这些链接之一时防止提示关闭?

我尝试使用 .not(); 从调用中排除锚,但这不起作用。

$('.call-out').not('a').toggle(
    function() { 
        $(this).find('.tip').addClass('tip-position').fadeIn("fast");
    },
    function() { 
        $(this).find('.tip').fadeOut("fast");
    }
);

HTML 示例

<div class='call-out w PMPB12UN'>
   <div class='tip'>
      <img src="images/graph/DFN2020MD-6.png" />
      <p class="description">
         xx
      </p>
      <ul class="bullet-blue-list">
         <li><a href="/pip/PMPB12UN" target="_blank" title="xx">Product Information</a></li>
         <li><a href="#" target="_blank" title="#">xx</a></li>
         <li><a href="#" target="_blank" title="Buy online">Buy online</a></li>
      </ul>
   </div>
   <div class='product_image'>
      <img src="images/graph/DFN2020MD-6.png" />
   </div>
   <div class='label'>
      <div class='top'>
         <p class='title'>xx</p>
      </div>
      <div class='middle'>
      </div>
      <div class='bottom'>
         <p class='package'>DFN2020MD-6</p>
      </div>
   </div>
</div>

谢谢!

4

1 回答 1

2

一种方法是通过event.stoppropagation单击超链接添加。这样子级的点击事件就anchor不会传播到导致切换的父级。

$('.call-out a').click(function(e){
e.stopPropagation();
});

小提琴

请注意,此版本的切换已被弃用,并且在 jquery 的后续版本中不受支持。

请参阅.toggle()文档。对于您将注册点击事件并手动执行切换的最新事件。它不再支持自己作为虚拟事件和 2 个回调。

于 2013-05-23T16:09:50.413 回答