我之前发过一个问题,当链接(original question here)中指定了HREF时,我的jQuery无效。
最常见的建议答案是使用preventDefault,但由于某些原因,如果HREF中有哈希/锚点,则这不起作用;所以例如,如果URL是“http://www.google.com”,它会阻止默认行为并按预期运行jQuery,但如果它是“http://www.google.co.uk#whatever”,它将忽略preventDefault并跟随链接。
我正在使用的链接有一个目标(实际上,它只是同一页面中的目标)。这种古怪的行为是否有解决方法?
HTML
<li><a id="OfficeNav-Bath" class="first" href="#bath" >Bath</a></li>
Jquery的
<script> <!--Offices jquery -->
$(function() {$("#OfficeNav-Bath").click(function(e){e.preventDefault(); $('.office').removeClass('visible');});});
</script>
答案 0 :(得分:1)
我认为此代码不存在问题,问题应该在其他地方。
检查出来:
目标:
答案 1 :(得分:1)
我认为您尝试做的事情看起来不错,但您的javascript标记块中有HTML注释可能会破坏您的脚本。删除<!--Offices jquery -->
。请记住,您的javascript日志/控制台是您的朋友。
答案 2 :(得分:1)
如果没有关于jquery的确切版本的任何信息,那么#
中href
使用jQuery 1.8.2似乎没有问题。
在href中使用jsFiddle #
没有任何影响,event.PreventDefault()
正在按预期工作。
event.PreventDefault()
中的 DEMO - #
和href
上面的DEMO代码在链接腐烂的情况下如下。
HTML:
<a id="OfficeNav-Bath" class="first" href="http://www.google.com#whatever" >click me</a>
脚本:
$("#OfficeNav-Bath").on("click", function(event){
event.preventDefault();
alert("Prevent Default Works");
})