jquery 手风琴防止冒泡/允许默认链接操作 [英] jquery accordion prevent bubbling / allow default link action

查看:28
本文介绍了jquery 手风琴防止冒泡/允许默认链接操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个手风琴设置:

 $('.shortheadline').accordion({ active: false, header: '.headline', autoHeight: false, animation: 'slowslide', changestart: function(event, ui) { $('.brief').css('min-height','0') }, 改变:function(event, ui) { $('.brief:visible').css('min-height','80px'); $('.headline').blur(); } });

我希望点击只在 .headline div 上注册,而不是在里面的链接上.该链接会将您带到文章页面.

 

<div class="entry"><div class="headline"><div class="timestamp">11:34 AM</div><div class="title"><a href="http://beta.macobserver.com/tmo/article/jeff_gamet_shares_iphone_tips_and_tricks_on_macjury/">Jeff Gamet 在 MacJury 上分享 iPhone 提示和技巧</a></div>

<div class="brief"><div class="teaser_image"><img src="/imgs/cache/imgs/teaser_images/20090708macjury_new-0x80.png" width="80" height="80" id="teas_48236" alt="macJuryJeff Gamet 在 MacJury 上分享 iPhone 提示和技巧"/></div><div class="teaser"><p><em>The Mac Observer's</em>Jeff Gamet 加入了<em>MacJury</em>主持人 Chuck Joiner 谈论 Apple 的 iPhone OS 3.0、iPhone 3GS,并分享一些 iPhone 提示和技巧.</p>

<!-- 更多条目-->

有没有办法防止事件冒泡,以便手风琴只在单击 div 时触发?或者有没有办法允许链接的默认操作继续?

我试过了:

$("a").click(function(){ window.location=this.href; });

这确实使链接功能起作用,但它不会让用户在新选项卡/窗口中打开链接.

谢谢!

解决方案

尝试

$("a").click(function(event){ event.stopPropagation(); });

点击函数被传递一个事件"对象.通过调用事件对象的stopPropagation"方法,可以防止冒泡.

I have an accordion setup as so:

 $('.shortheadline').accordion({ active: false, header: '.headline',  autoHeight: false, animated: 'slowslide', changestart: function(event, ui) { $('.brief').css('min-height','0') }, change: function(event, ui) {  $('.brief:visible').css('min-height','80px'); $('.headline').blur(); } });

I want the click to only register on the .headline div, not the link inside. The link should take you to the article page.

   <div class="shortheadline"> 
        <div class="entry">
            <div class="headline">
                <div class="timestamp">11:34 AM</div>
                <div class="title"><a href="http://beta.macobserver.com/tmo/article/jeff_gamet_shares_iphone_tips_and_tricks_on_macjury/">Jeff Gamet Shares iPhone Tips and Tricks on MacJury</a></div>
            </div>
            <div class="brief">
                <div class="teaser_image"> <img src="/imgs/cache/imgs/teaser_images/20090708macjury_new-0x80.png" width="80" height="80"  id="teas_48236" alt="macJuryJeff Gamet Shares iPhone Tips and Tricks on MacJury" /></div>
                <div class="teaser"><p><em>The Mac Observer's</em> Jeff Gamet joined <em>MacJury</em> host Chuck Joiner to talk about Apple's iPhone OS 3.0, the iPhone 3GS, and to share some iPhone tips and tricks, too.</p> </div>
            </div>
        </div>
    <!-- more entries -->
    </div>

Is there a way to prevent event bubbling so the accordion only triggers on clicking a div? Or is there a way to allow the link's default action to continue?

I've tried:

$("a").click(function(){ window.location=this.href;  });

Which does make the link function, but it doesn't let the user open the link in a new tab/window.

Thanks!

解决方案

Try

$("a").click(function(event){ event.stopPropagation(); });

The click function is passed an 'event' object. By calling the 'stopPropagation' method of the event object, you can prevent bubbling.

这篇关于jquery 手风琴防止冒泡/允许默认链接操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
其他开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆