更新
$('#menu1').bind('accordionchangestart', function(e, ui)
{
console.log( 'accordionchangestart event triggered' );
e.preventDefault();
});
我尝试了上面的代码,我确实得到了控制台消息,但手风琴仍然向下滑动。有没有办法阻止手风琴在活动中滑落?
我已尝试return false
和e.stopImmediatePropagation()
。它们似乎都没有阻止手风琴滑落。
以下是我的手风琴HTML:
<div id="menu1">
<div>
<h3><a href="#">Item 1</a></h3>
<div>
<a href="#">Item 1.1</a><br>
<a href="#">Item 1.2</a><br>
<a href="#">Item 1.3</a><br>
<a href="#">Item 1.4</a><br>
</div>
</div>
<div>
<h3><a href="item2.html">Item 2</a></h3>
<div></div>
</div>
<div>
<h3><a href="#">Item 3</a></h3>
<div>
<a href="#">Item 3.1</a><br>
<a href="#">Item 3.2</a><br>
<a href="#">Item 3.3</a><br>
<a href="#">Item 3.4</a><br>
</div>
</div>
</div>
除非标题链接不是#
,否则我希望手风琴正常工作。例如,Item 2
的href是item2.html
。在这种情况下,我希望它作为普通链接运行,并打开页面。
答案 0 :(得分:1)
这就是你能做的:
HTML:
<div id="menu1">
<div>
<h3><a href="#">Item 1</a></h3>
<div>
<a href="#">Item 1.1</a><br>
<a href="#">Item 1.2</a><br>
<a href="#">Item 1.3</a><br>
<a href="#">Item 1.4</a><br>
</div>
</div>
<div>
<h3><a href="item2.html">Item 2</a></h3>
<div></div>
</div>
<div>
<h3><a href="#">Item 3</a></h3>
<div>
<a href="#">Item 3.1</a><br>
<a href="#">Item 3.2</a><br>
<a href="#">Item 3.3</a><br>
<a href="#">Item 3.4</a><br>
</div>
</div>
</div>
Javascript:
$(document).ready(function(){
$("#menu1 div div").hide();
$("#menu1 div h3 a").click(function(e){
if($(this).attr("href") == "#"){
e.preventDefault();
$("#menu1 div div").slideUp();
$(this).parent().next().slideDown();
}
});
});
答案 1 :(得分:0)
更改您的点击事件以包含以下内容:
if ($(this).attr("href") != "#") {
window.location = $(this).attr("href");
return;
}
答案 2 :(得分:0)
您能告诉我们您使用的插件吗?还是自制?
如果是插件,你可以去参加活动并说: 如果href与#不同,则转到链接。
例如
$('h3').click(function(){
if($(this).attr('href') != '#'){ return true; }
});
或类似的东西。很难说没有javascript脚本。