我希望能够在用户点击菜单链接时播放jQuery动画。如果锚标签包含href属性
在我的脚本中,我阻止链接的默认行为,将锚标记的href属性的值保存在变量中,播放动画,然后将窗口重定向到与保存的href值对应的URL:
<script>
jQuery(document).ready(function($) {
$('.main-navigation a').click(function(event) {
event.preventDefault();
var href = this.href;
$('#main').slideUp(500,
function() {
window.location = href;
});
});
});
</script>
问题是,我的导航菜单中的某些定位标记没有href属性,因为它们唯一的功能是打开点击子菜单。当我点击这些菜单项时,动画播放,然后重新加载相同的页面。
我想从脚本的行为中排除没有href的锚定标记。
我的解决方案是只保存那些实际上具有href属性的锚定标记的href。除此之外,我不知道该怎么做。
所以,我的问题是:我应该如何用jQuery表达这个?
if (anchor tag has href attribute) {
var href = this.href;
}
或者有更好的解决方案吗?
谢谢卡尔安德烈,这是一个非常优雅的解决方案。我现在尝试了它,它可以工作,但它让我注意到另一个我以前不知道的问题。点击当前页面的链接也会播放动画,然后重新载入相同的页面。你能告诉我,有没有办法也排除当前页面呢? –
我的解决方案是将一个id或类添加到活动链接,并且click函数的第一行是'if($(this).has('#yourId or .yourClass'))return false;' –
你,卡尔 - 安德烈 - 你能否向我解释一下我可以如何将课程添加到活动链接?我假设,它应该与JS完成,对吧? –