2015-10-26 49 views
0

我有超链接与分配给客户端JavaScript事件处理程序的href =“#”。当通过ajax发出请求时,这些链接的行为与预期的一样(通过“点击”事件),但是当我偶尔使用由Rails link_to helper生成的链接时,这些href值突然变得损坏:href =“users/1”/photo/4“为例。页面上的每个链接都会提供相同的值!为什么rails会改变我的占位符hashtag值?

当我使用Chrome的Inspect元素时,它显示呈现的href值仍然是href =“#”,但是翻转它显示它指向不需要的url。事件侦听器失败。这是turbolinks迫使我的链接占位符承担不必要的价值?为什么rails会与我的链接混淆?

这里是典型的JavaScript代码分配一个事件处理程序:

Menu.prototype.activatePhotosLink = function() { 
    var self = this; 

    // ======= get all user photos ======= 
    $("#main-nav").on("click", function(){ 
     event.preventDefault(); 
     self.getUserPhotos(); 
    }); 
} 

这里的链接通过Chrome的外观检查元素与HREF =“#”:

<a href="#" id="main-nav" data-no-turbolink="true">photos</a> 

我试图解决这个问题用data-no-turbolink =“true”但没有奏效。同时,这里是我在浏览器的见“链接工具提示”上翻滚:

localhost:30000/users/1# 

为什么不HREF =“#”?谢谢你的任何想法!

回答

0

路径没有损坏。它应该是您所在页面的路径,并附加hashtag。这与Rails和JavaScript无关,而是HTML中的一项功能。在HTML中,如果要创建页面中某个元素的锚链接,请将其id传递给href。你可以阅读更多关于它here

如果你不想要一个网址,当你将鼠标悬停在链接出现,您可以使用href='javascript:void(0)'

+0

你刚才救了我小时的工作量。现在按预期工作。谢谢! – tomBeach

相关问题