我在单页面应用程序项目中有一个要求,当我根据提供的href
属性点击锚标记时,我需要更改页面部分。像这样:
<a class="page-click" href="#showPeople/1">Open</a>
此锚点位于该页面的弹出窗口中。因此,每当我单击此锚标记时,锚点应关闭弹出窗口并将窗口位置更改为
http://www.example.com/#showPeople/1
现在,主播正在更改网址(默认情况下为 ),但不会关闭弹出窗口。
当我研究时,我发现对于锚点,我应该使用e.preventDefault()
来删除默认行为。但就我而言,我需要默认行为以及自定义行为(关闭弹出窗口)。
我发现这个link有类似的要求,但问题是我动态地附加事件。
$(document).on('click', '.page-click', function (e) {
// e.preventDefault();
// code here
});
即使我以某种方式成功unbind
来自该特定点击锚点的事件,当用户再次打开弹出窗口时,锚点也不会关闭弹出窗口(,因为已删除已注册的事件< / em>的)。
答案 0 :(得分:1)
尝试
$('button').click(function () {
$('body').toggleClass('active');
});
$(document).on('click', 'a.page-click', function (e) {
e.preventDefault();
var $this = $(this);
$('.popup').hide('fast', function() {
window.location.href = "http://example.com/" + $this.attr('href');
});
});
答案 1 :(得分:-2)
我不确定这是否适合您,但是一旦我要求将html标记保留为<a href="#">Demo</a>
,但我只是想将其作为占位符,并且要求不要更改地址栏中的url。我做了以下
$('a').click(function() {
// below line prevents the 'href' from followed.
return false;
});
我想你可以尝试一下。