2015-10-26 2 views
0

У меня есть гиперссылки с href = "#", которые назначаются обработчикам событий javascript на стороне клиента. При выполнении запросов через ajax эти ссылки ведут себя так, как ожидалось (через события «click»), но когда я иногда использую ссылку, сгенерированную Rails link_to helper, эти значения href внезапно становятся поврежденными: href = "#" становится href = "users/1/photo/4 ", например. Каждая ссылка на странице получает то же значение!Почему рельсы меняют мои значения хэшхэгов-заполнителей?

Когда я использую элемент проверки Chrome, он показывает, что значение рендеринга href остается href = "#", но пока он перевернулся, он указывает на нежелательный URL-адрес. Слушатели событий терпят неудачу. Является ли это turbolinks заставляя мои заполнители ссылок принимать нежелательные значения? Почему рельсы возились с моими ссылками?

Вот типичный яваскрипта код присваивая обработчик события:

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

Путь не поврежден. Это должен быть путь к странице, на которой вы находитесь, с добавлением хэштага. Это не связано с Rails и JavaScript, а скорее с функцией HTML. В HTML, если вы хотите создать привязку к определенному элементу на странице, вы передаете ее id в href. Вы можете узнать больше об этом here.

Если вы не хотите URL появляться при наведении на ссылку, вы можете использовать href='javascript:void(0)'

+0

Вы только что спасли меня часы усилий. Работает так, как ожидалось. Спасибо! – tomBeach

Смежные вопросы