2013-09-20 2 views
1

У меня есть ссылка на мой рельсы шаблон макета, который имеет следующую ссылку:«Ошибка синтаксиса непризнанный выражение:» + тзд

<%= link_to "Sign in", "/login", class: "sign_in" %> 

И следующие JS угнать событие щелчка:

<script type="text/javascript" charset="utf-8"> 
    $(function(){ 
     $('a.sign_in').on('click',function(e) { 
     console.log("test"); 
     e.preventDefault(); 
     return false; 
     }); 
    }); 
    </script> 

Когда я меняю ссылку на «login» (поэтому без косой черты), она работает нормально, и функция щелчка выполняется. Однако, когда я оставляю его в качестве «/ входа» он дает мне ошибку:

"Syntax error, unrecognized expression: " + msg rails

Я тяговое моим волосы здесь ... Я гугл за ошибки и нашел много исправлений для подобных проблем, но ни для меня не работало!

EDIT: Проблема была решена, это было связано с несвязанной кусок кода в application.js угон по той же ссылке

+0

Я подозреваю, что у вас есть другой обратный вызов где-то связанный с 'a [href^="/login "]' на что-то. Реализовано ли «msg rails», или это точно, как оно появляется? Этот отпечаток ошибки обычно является ошибкой jquery при вводе плохого селектора, например: '$ ('foo [bar <')'. Вы можете посмотреть трассировку стека в консоли, чтобы узнать, где это происходит. –

+0

Это ошибка, когда я вижу ее в моей консоли: Ошибка: Синтаксическая ошибка, нераспознанное выражение:/login: checkbox throw new Error ("Ошибка синтаксиса, нераспознанное выражение:" + msg); И это происходит в: Sizzle.error = function (msg) { \t throw new Error ("Синтаксическая ошибка, нераспознанное выражение:" + msg); }; –

+0

Немного глубже в трассировке стека, может быть, это внутренняя строка, которая вызывает исключение :) У вас есть еще одна подсказка: что-то пытается сделать '$ ('/ login')'. –

ответ

0

Изменить

console.log("test);

в

console.log("test");

+0

спасибо, но это была опечатка, а не причина проблемы –

0

Поменять

<%= link_to "Sign in", "/login", class: "sign_in" %> 

в

<%= link_to "Sign in", "/login", :class => "sign_in" %> 

ИЛИ к

<%= link_to "Sign in", login_path, :class => "sign_in" %> 

Она будет работать.

+0

это сработает для вас? –

+0

, почему вы вызываете e.preventDefault(); и вернуть false; вместе? –

1

В моем случае

var splitId = "abcd/00001"; 
$("#employeeChecked_"+splitId).val(chooseDate); 

Этот код отобразили сообщение об ошибке

Error: Syntax error, unrecognized expression: #employeeChecked_abcd/00001 

throw new Error("Syntax error, unrecognized expression: " + msg); 

Заменены это

var splitId = "abcd/00001"; 
var employeeChecked = "employeeChecked_"+splitId; 
    $("input[id='"+employeeChecked+"']").val(chooseDate); 

// решаемые мой вопрос.

+1

работает как шарм :) –

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