У меня есть гиперссылки с 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 = «#»? Спасибо за любые мысли!
Вы только что спасли меня часы усилий. Работает так, как ожидалось. Спасибо! – tomBeach