我在URL中使用锚作为JavaScript的一种变量,例如:
mysite.com/itempage.html#item75
当我单击任何其他页面上的链接,而不是有问题的实际页面(itempage.html)时,此方法有效。
单击该链接仅需更改URL,而无需重新加载页面。由于该页面不会重新加载,因此我的JavaScript均无法再次运行。
有谁知道用新的网址重新加载页面的方法吗?
到目前为止,我已经尝试过:
的HTML
<div id="itemmenu">
<a id="item75" href="#">Item 75</a>
<a id="item11" href="#">Item 11</a>
</div>
JQUERY
$( "#itemmenu a" ).each(function(index) {
$(this).on("click", function(){
var linkid = $(this).attr('id');
var winloc = "mysite.com/itempage#" + linkid;
window.location = winloc;
});
});
这确实是预期的行为:不重新加载页面,而只是将页面滚动到锚点。另外,“#...”部分完全在客户端发生,并且浏览器不会将URI的这一部分发送到服务器,因此:
被视为服务器的相同URI。
如果您需要重新加载页面,则可以执行以下操作:
<div id="itemmenu">
<a id="item75" href="?item=75">Item 75</a>
<a id="item11" href="?item=11">Item 11</a>
</div>
如果您不需要重新加载页面,而只需要重新运行JavaScript,则将所需的JavaScript函数与任何相关链接上的click事件相关联。
附加条款:
$(this).on("click", ...)
可以缩短为$(this).click(...)
。
您不需要实际的JavaScript代码:href
直接在HTML代码中设置,而无需通过JavaScript进行更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句