我在jQuery中的.click()事件中遇到此错误。我在Firebug中看到它。我用的是最新版本,1.3.2(分钟) 单击会在我的网站中触发$ .ajax()请求。我问谷歌有关这一点,他所知道的只是“%”或“[@]”作为无法识别的表达,没有关于“#”。
这是我的一些代码:
$("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()做一些显示/隐藏,这样的东西,没什么重要的。
我读到它可能来自我的选择器,但它们似乎都很好。
其他人有同样的问题吗?
感谢。
答案 0 :(得分:8)
从我所看到的异常似乎是由你正在使用的jScrollPane
插件触发的。
尝试直接从主干更换您包含的脚本(v1.2.3,这与2008年12月一样久)。其中包括对v.1.2.3的许多改进,并修复了我jScrollPane.js的异常(使用YUICompressor缩小的r87 jScrollPane的jScrollPane.min.js缩小版)
删除了不再需要的旧答案
答案 1 :(得分:3)
在某些浏览器中,id可能为空,JQuery将“#”作为选择器阻塞。
答案 2 :(得分:1)
2011年9月
从
更改$(document).ready( function () {
$('#'+id).creatorCall( {init:param} ) ;
} );
到
$(document).ready( function () {
$(this).creatorCall( {init:param} ) ;
} );
并治愈了同样的uncaught exception: Syntax error, unrecognized expression: #
消息
答案 3 :(得分:0)
formErrorHandling函数是什么样的?是期待选择器还是jQuery对象?
或许您需要的是将其称为
formErrorHandling($("#userLastName"));
答案 4 :(得分:0)
我知道这是一个老问题,并且有更新的版本jScrollPane,但由于遗留问题,我需要使用当前版本的修复程序。如果您使用上述答案中的jScrollPane.js,则需要更改第534行中的代码:
变化:
if (h && h.substr(0, 1) == '#' && h.length > 1) {
到
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
#
函数
干杯
-G。
答案 5 :(得分:0)
我的问题似乎是选择器中有太多#的原因造成的。
例如:
$('##id_name')
应该是......
$('#id_name')