执行 preventDefault 然后执行默认行为
Do preventDefault and then do default behavior
我在单页应用程序项目中有一个要求,当我根据提供的 href
属性单击锚标记时,我需要更改页面的部分。像这样:
<a class="page-click" href="#showPeople/1">Open</a>
该锚位于该页面的弹出窗口中。所以,每当我点击这个锚标签时,锚应该关闭弹出窗口并将 window 位置更改为
http://www.example.com/#showPeople/1
现在,锚点正在更改 url(默认情况下)但不会关闭弹出窗口。
当我研究时发现对于锚点,我应该使用 e.preventDefault()
来删除默认行为。但就我而言,我需要默认行为和自定义行为(关闭弹出窗口)。
我发现这个 link 有类似的要求,但问题是我正在动态附加事件。
$(document).on('click', '.page-click', function (e) {
// e.preventDefault();
// code here
});
即使我以某种方式成功地 unbind
来自该特定点击锚点的事件,锚点也不会关闭弹出窗口,当用户再次打开弹出窗口时(自注册事件以来已被删除).
我不确定这是否适合您,但有一次我要求将 html 标记保留为 <a href="#">Demo</a>
,但我只是想将其作为占位符,而要求不是地址 bar.I 中的更改 url 遵循了
$('a').click(function() {
// below line prevents the 'href' from followed.
return false;
});
我想你可以试试这个。
尝试
$('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');
});
});
我在单页应用程序项目中有一个要求,当我根据提供的 href
属性单击锚标记时,我需要更改页面的部分。像这样:
<a class="page-click" href="#showPeople/1">Open</a>
该锚位于该页面的弹出窗口中。所以,每当我点击这个锚标签时,锚应该关闭弹出窗口并将 window 位置更改为
http://www.example.com/#showPeople/1
现在,锚点正在更改 url(默认情况下)但不会关闭弹出窗口。
当我研究时发现对于锚点,我应该使用 e.preventDefault()
来删除默认行为。但就我而言,我需要默认行为和自定义行为(关闭弹出窗口)。
我发现这个 link 有类似的要求,但问题是我正在动态附加事件。
$(document).on('click', '.page-click', function (e) {
// e.preventDefault();
// code here
});
即使我以某种方式成功地 unbind
来自该特定点击锚点的事件,锚点也不会关闭弹出窗口,当用户再次打开弹出窗口时(自注册事件以来已被删除).
我不确定这是否适合您,但有一次我要求将 html 标记保留为 <a href="#">Demo</a>
,但我只是想将其作为占位符,而要求不是地址 bar.I 中的更改 url 遵循了
$('a').click(function() {
// below line prevents the 'href' from followed.
return false;
});
我想你可以试试这个。
尝试
$('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');
});
});