Javascript 为什么rails要更改我的占位符标签值?

Javascript 为什么rails要更改我的占位符标签值?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有href=“#”的超链接,分配给客户端javascript事件处理程序。当通过ajax发出请求时,这些链接的行为与预期一致(通过“单击”事件),但当我偶尔使用Rails链接生成的链接帮助这些href值时,这些href值突然损坏:例如href=“#”变成href=“users/1/photo/4”。页面上的每个链接拾取相同的值 当我使用Chrome的Inspect元素时,它显示呈现的href值仍然是href=“#””,但滚动显示它指向了不需要的url。事件侦听器失败。这是turbolinks强

我有href=“#”的超链接,分配给客户端javascript事件处理程序。当通过ajax发出请求时,这些链接的行为与预期一致(通过“单击”事件),但当我偶尔使用Rails链接生成的链接帮助这些href值时,这些href值突然损坏:例如href=“#”变成href=“users/1/photo/4”。页面上的每个链接拾取相同的值

当我使用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的Inspect元素href=“#””查看链接的方式:


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

路径未损坏。它应该是您所在页面的路径,并附加了标签。这与Rails和JavaScript无关,而是HTML中的一个特性。在HTML中,如果要创建指向页面中某个元素的锚定链接,请将其
id
传递给
href
。你可以阅读更多关于它的内容


如果您不希望在滚动链接时显示url,可以使用
href='javascript:void(0)

您刚刚为我节省了数小时的工作。现在一切正常。非常感谢。
<a href="#" id="main-nav" data-no-turbolink="true">photos</a>
localhost:30000/users/1#