неперехваченные исключения: синтаксическая ошибка, нераспознанный выражение: #
Я получаю эту ошибку на себя .нажмите кнопку() событие в jQuery. Я вижу это в Firebug. Я использую последнюю версию, 1.3.2 (min) Щелчок запускает $.ajax () запрос формы на моем веб-сайте. Я спросил google об этом, и все, что он знает, это "%" или "[@]" как непризнанные выражения, ничего о "#".
вот немного моего кода:
$("form#buyForm #submitForm").live("click", function(e) {
var errors = 0;
var inputLastName_value = $("form#buyForm input#userLastName").val();
if (inputLastName_value == "") {
errors = 1;
formErrorHandling("#userLastName");
return false;
}
return false;
});
таким образом, я проверяю все свои входы на наличие ошибок, а затем вызываю formErrorHandling (), который делает некоторые шоу / скрытие, такие вещи, ничего важный.
Я прочитал, что это может быть из моего селектора, но все они, кажется, в порядке.
У кого-нибудь еще была такая же проблема?
спасибо.
6 ответов
из того, что я вижу, исключение, кажется, каким-то образом вызвано jScrollPane
плагин вы используете.
попробуйте заменить скрипт включить (В1.2.3 как с декабря 2008) с новой версии прямо из ствола. Что включает в себя множество улучшений по сравнению с v. 1.2.3 и исправляет исключение для меня jscrollpane не.js (jscrollpane не.минута.js уменьшенная версия r87 jScrollPane, уменьшенная с помощью YUICompressor)
удалил старый ответ больше не нужен
сентября 2011
изменилась с
$(document).ready( function () {
$('#'+id).creatorCall( {init:param} ) ;
} );
to
$(document).ready( function () {
$(this).creatorCall( {init:param} ) ;
} );
и вылечил себя же uncaught exception: Syntax error, unrecognized expression: #
Как выглядит функция formErrorHandling? Ожидает ли он селектор или объект jQuery?
возможно, вам нужно назвать это как
formErrorHandling($("#userLastName"));
Я знаю, что это старая проблема, и есть более новая версия jScrollPane, но поскольку мне нужно было использовать текущий из-за устаревших проблем, вот исправление. Если вы будете использовать jscrollpane не.js из ответа выше вам нужно изменить код в строке 534:
изменения:
if (h && h.substr(0, 1) == '#' && h.length > 1) {
to
if (h && h!='#' && h.substr(0, 1) == '#' && h.length > 1) {
весь кусок кода, ответственный за клики документа с исправлением:
$(document).bind('click', function(e){
$target = $(e.target);
if ($target.is('a')) {
var h = $target.attr('href');
if (h && h!='#' && h.substr(0, 1) == '#' && h.length > 1) {
setTimeout(function(){
scrollTo(h, !settings.animateToInternalLinks);
}, $.browser.safari ? 100 : 0);
}
}
});
в основном scrollTo
функция будет проигнорирована если ссылка href
равна #
Ура
г.
проблема для меня, казалось, была вызвана тем, что в селекторе было слишком много#.
например:
$('##id_name')
должны были...
$('#id_name')