我当前的问题是我想在页面加载之前指向的内容之前更改标记的href。
<a href = "#oldLink" onclick = "this.href = #newLink"></a>
我尝试过类似的东西而且没用。我试过了:
<a href = "#oldLink" onclick = "changeLink();"></a>
在另一个档案中:
changeLink(){
$("a").attr("href", "#newLink");
}
并且这不起作用,除非您在更改发生之前发出警报,然后它会按预期发生。任何帮助将不胜感激,如果格式不正确,这是我第一次发布如此道歉
答案 0 :(得分:3)
<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;
}
});
});
答案 1 :(得分:2)
您可以通过JS重定向链接
changeLink(e){
window.location = "#newLink";
e.preventDefault();
}
答案 2 :(得分:0)
你可以做到 HTML
<a href = "#oldLink">abc</a>
JQuery的
$('a').attr("href", "some url");
答案 3 :(得分:0)
你的第一种方法是正确的。您似乎只是忘记引用该文字:
<a href = "#oldLink" onclick = "this.href = '#newLink';"></a>
答案 4 :(得分:0)
处理点击前的链接时,请勿更改 示例:Live Copy 请注意链接总是将用户带到他们可以提前看到的位置,然后根据需要进行更新。href
。相反,在页面加载和/或(如果链接打开一个新窗口或不会导致窗口重新加载) >>之后,将其更改更早。< / p>
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));
}