Javascript jqueryaccordion:单击标题时打开链接,而不是向下滑动Accordion
更新:Javascript jqueryaccordion:单击标题时打开链接,而不是向下滑动Accordion,javascript,jquery,html,accordion,jquery-ui-accordion,Javascript,Jquery,Html,Accordion,Jquery Ui Accordion,更新: $('#menu1').bind('accordionchangestart', function(e, ui) { console.log( 'accordionchangestart event triggered' ); e.preventDefault(); }); 我试过上面的代码,我确实收到了控制台的信息,但手风琴还是滑了下来。有没有办法阻止手风琴在活动中滑落 我尝试了返回false和e.stopImmediatePropagation()。它们似乎都不能阻
$('#menu1').bind('accordionchangestart', function(e, ui)
{
console.log( 'accordionchangestart event triggered' );
e.preventDefault();
});
我试过上面的代码,我确实收到了控制台的信息,但手风琴还是滑了下来。有没有办法阻止手风琴在活动中滑落
我尝试了返回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>
我希望手风琴能够正常工作,除非标题链接不是
#
。例如,item2
的href是item2.html
。在这种情况下,我希望它能作为一个正常的链接,并打开页面。更改您的单击事件,使其包含如下内容:
if ($(this).attr("href") != "#") {
window.location = $(this).attr("href");
return;
}
你能给我们看看你正在使用的插件吗?还是自制的 如果它是一个插件,你可以在活动中说: 如果href与#不同,则转到链接 比如说
$('h3').click(function(){
if($(this).attr('href') != '#'){ return true; }
});
或者类似的。没有javascript脚本很难说。这就是您可以做的: 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>
我知道在这个例子中这不重要,但最好的做法是使用
===
而不是==
来避免ambiguity@Zach-没错。这是一个很好的编程实践,但我一直不好。我已经在使用JQuery Accordian来上下滑动它,但问题是单击事件中的preventDefault并不能阻止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();
}
});
});