[英]Changing the href of an <a> tag before it fires
我当前的问题是,我想在页面加载之前指向的页面之前更改标签的href。
<a href = "#oldLink" onclick = "this.href = #newLink"></a>
我已经尝试过类似的方法,但是没有用。 我试过了:
<a href = "#oldLink" onclick = "changeLink();"></a>
在另一个文件中:
changeLink(){
$("a").attr("href", "#newLink");
}
并且这是行不通的,除非您在更改发生之前发出警报,然后确实按预期发生。 任何帮助将不胜感激,这是我第一次发布,如果格式不正确,我们深表歉意
您可以这样:
<a href = "#oldLink" id="link"></a>
先前的解决方案将创建一个事件的递归循环,而不是这样做
$(function () {
$("#link").on("click", function (e) {
e.preventDefault(); //stop default behaviour
$(this).attr("href", "#newLink"); // change link href
window.location.href = "#link2";
});
});
要么:
$(function () {
$("#link").on("click", function (e) {
if ($(this).attr('href') === '#oldLink') // check if it is old link
{
e.preventDefault(); //stop default behaviour
$(this).attr("href", "#newLink"); // change link href
$(this).trigger("click"); // click link programmatically
}
});
});
$(function () {
$("#link").on("click", function (e) {
if ($(this).attr('href') === '#oldLink') // check if it is old link
{
$(this).attr("href", "#newLink"); // change link href
$(this).trigger("click"); // click link programmatically
return false;
}
});
});
您可以通过JS这样重定向链接
changeLink(e){
window.location = "#newLink";
e.preventDefault();
}
您可以通过HTML来完成
<a href = "#oldLink">abc</a>
jQuery查询
$('a').attr("href", "some url");
您的第一种方法是正确的。 似乎您只是忘了引用文本了:
<a href = "#oldLink" onclick = "this.href = '#newLink';"></a>
处理点击之前的链接时,请勿更改href
。 取而代之的是, 在单击页面加载和/或(如果链接打开一个新窗口,否则不会导致窗口重新加载) 之前 ,对其进行更早的更改。
示例: 实时复制
var link = $("#link");
setRandomLink();
link.click(function() {
// Allow the link to be followed, then update it
// with a new random value
setTimeout(setRandomLink, 0);
});
function setRandomLink() {
link.attr("href", "#" + Math.floor(Math.random() * 100));
}
请注意,链接如何始终将用户带到他们可以看到的预先位置,然后适当地进行更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.