jquery 手风琴防止冒泡/允许默认链接操作
[英] jquery accordion prevent bubbling / allow default link action
本文介绍了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屋!