Javascript 更改一个<;a>;在它开火之前贴上标签
我当前的问题是,我想在页面加载之前更改标签的hrefJavascript 更改一个<;a>;在它开火之前贴上标签,javascript,jquery,html,Javascript,Jquery,Html,我当前的问题是,我想在页面加载之前更改标签的href <a href = "#oldLink" onclick = "this.href = #newLink"></a> 这是行不通的,除非你在改变发生之前发出警告,然后它会按预期发生。任何帮助都将不胜感激,这是我第一次发布,因此,如果格式不正确,我深表歉意您可以通过JS通过以下方式重定向链接 changeLink(e){ window.location = "#newLink"; e.preventDe
<a href = "#oldLink" onclick = "this.href = #newLink"></a>
这是行不通的,除非你在改变发生之前发出警告,然后它会按预期发生。任何帮助都将不胜感激,这是我第一次发布,因此,如果格式不正确,我深表歉意您可以通过JS通过以下方式重定向链接
changeLink(e){
window.location = "#newLink";
e.preventDefault();
}
你可以像这样通过JS重定向链接
changeLink(e){
window.location = "#newLink";
e.preventDefault();
}
您可以这样做:
HTML:
或:
更新:
您可以这样做:
HTML:
或:
更新:
你可以这样做
HTML
你可以这样做
HTML
你的第一个方法是正确的。你好像忘了引用这段文字:
<a href = "#oldLink" onclick = "this.href = '#newLink';"></a>
您的第一个方法是正确的。你好像忘了引用这段文字:
<a href = "#oldLink" onclick = "this.href = '#newLink';"></a>
处理单击前的链接时,不要更改href
。相反,在页面加载和/或(如果链接打开一个新窗口或没有导致窗口重新加载)单击后,将其更改为更早的
例如:
请注意,链接总是将用户带到他们可以提前看到的地方,然后根据需要进行更新。在处理单击之前的链接时,不要更改href
。相反,在页面加载和/或(如果链接打开一个新窗口或没有导致窗口重新加载)单击后,将其更改为更早的
例如:
请注意,链接总是将用户带到他们可以提前看到的地方,然后根据需要进行更新。这将创建一个循环。opps。。是的,刚刚认识到可能会添加if($(this).attr('href')=='#newLink')返回代码>?感谢@Matmarbon的建议,并补充说我刚刚尝试了第一个解决方案(编辑版),与您描述的完全一样,当出于某种原因单击链接时,jquery函数没有做任何事情。这将创建一个循环。opps。。是的,刚刚认识到可能会添加if($(this).attr('href')=='#newLink')返回
?感谢@Matmarbon的建议,并补充说,正如您所描述的,我刚刚尝试了第一个解决方案(编辑版本),并且由于某种原因单击链接时,jquery函数没有做任何事情。您还必须更改OP调用的方式:onclick=“changeLink(event);”
您还必须改变OP的调用方式:onclick=“changeLink(event);”
恕我直言,这听起来很不可靠。为什么不让链接在被点击之前有正确的值呢?为什么您要交换用户可能已预览的值(在状态区域中,通过悬停),而不是使用您向他们显示的值?我基本上正在使用播放列表web应用程序,因此当您按随机按钮搅乱列表时,我希望播放列表集中在当前播放的歌曲上,这意味着我需要在触发链接之前更改链接位置。在这种情况下,我会在用户单击链接之前随机更改href
。(例如在页面加载时,或在上一次单击[如果相关])后)href需要将页面转到当前播放的歌曲。无论哪种方式,当前的问题都是更改href,然后让页面移动,href更改的内容稍后会出现:)触发事件(主要是单击
或其他事件)对于解决方案来说非常非常重要。恕我直言,这听起来非常危险。为什么不让链接在被点击之前有正确的值呢?为什么您要交换用户可能已预览的值(在状态区域中,通过悬停),而不是使用您向他们显示的值?我基本上正在使用播放列表web应用程序,因此当您按随机按钮搅乱列表时,我希望播放列表集中在当前播放的歌曲上,这意味着我需要在触发链接之前更改链接位置。在这种情况下,我会在用户单击链接之前随机更改href
。(例如在页面加载时,或在上一次单击[如果相关])后)href需要将页面转到当前播放的歌曲。无论哪种方式,当前的问题都是更改href,然后让页面移动,href更改的内容稍后会出现:)触发事件(主要是单击
或其他事件)对于解决方案来说非常非常重要。这很好,但对于我尝试做的事情来说不起作用。我正在随机组织一个视频列表,然后试图将页面移动到当前正在播放的视频所在的位置,这意味着我必须对视频进行随机操作,然后将href更改为当前正在播放的视频所在的位置,然后将页面移到该位置。@Ryan:这似乎符合“…在页面加载和/或…单击后…”的描述您似乎在推动一个遵循href属性当前值的解决方案,然后对其进行更改,这对我来说不是一个解决方案。@Ryan:我不是在推动它,我是在建议它,因为它很简单,而且不会误导用户。你还没有说为什么它对你不起作用。这很好,但对我正在努力做的事情不起作用。我正在随机组织一个视频列表,然后试图将页面移动到当前正在播放的视频所在的位置,这意味着我必须对视频进行随机操作,然后将href更改为当前正在播放的视频所在的位置,然后将页面移到该位置。@Ryan:这似乎符合“…在页面加载和/或…单击后…”的描述您似乎在推动一个遵循href属性当前值的解决方案,然后对其进行更改,这对我来说不是一个解决方案。@Ryan:我不是在推动它,我是在建议它,因为它很简单,而且不会误导用户。你还没说为什么它不适合你。
$(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;
}
});
});
<a href = "#oldLink">abc</a>
$('a').attr("href", "some url");
<a href = "#oldLink" onclick = "this.href = '#newLink';"></a>
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));
}