Javascript 在jQuery选择器中使用$(this)和上下文
我的javascript如下所示:Javascript 在jQuery选择器中使用$(this)和上下文,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我的javascript如下所示: $(document).ready(function() { $("a:not(.noajax)", $('#header, #content')).live('click', function(event) { ajaxCall($(this).attr("href")); event.preventDefault(); }); )}; $(this)选择器似乎没有获得“a”对象,但是在没有选择器上下文的情况
$(document).ready(function() {
$("a:not(.noajax)", $('#header, #content')).live('click', function(event) {
ajaxCall($(this).attr("href"));
event.preventDefault();
});
)};
$(this)选择器似乎没有获得“a”对象,但是在没有选择器上下文的情况下,它可以正常工作。我做错了什么
看起来jQuery将具有上下文的选择器转换为:
$(context).find(selector)
所以我认为我的$(this)指的是上下文,而不是选择器。有什么想法吗?上下文应该是元素或字符串,而不是jQuery对象。此外,由于ID是唯一的,所以这里只需要一个上下文
$("a:not(.noajax)", '#header').live('click', function(event) {
ajaxCall($(this).attr("href"));
event.preventDefault();
});
上下文应该是元素或字符串,而不是jQuery对象。此外,由于ID是唯一的,所以这里只需要一个上下文
$("a:not(.noajax)", '#header').live('click', function(event) {
ajaxCall($(this).attr("href"));
event.preventDefault();
});
尝试使用
$('header,#content')。查找('a:not(.noajax'))。实时(…)
——这有帮助吗?有些东西告诉我它与作用域相关。获取一个小的html代码片段,可以告诉我们您试图选择的元素。或者引用事件.target
,而不是此
,这是什么意思?它得到了什么?你确定处理程序正在启动吗?@Brad,Wiseguy:传递上下文参数对.live()
有特殊意义,尽管可能需要传递DOM元素。至少文档是这样显示它被使用的。尝试使用$('header,#content')。查找('a:not(.noajax'))。live(…)
——这有帮助吗?有些东西告诉我它与作用域相关。获取一个小的html代码片段,可以告诉我们您试图选择的元素。或者引用事件.target
,而不是此
,这是什么意思?它得到了什么?你确定处理程序正在启动吗?@Brad,Wiseguy:传递上下文参数对.live()
有特殊意义,尽管可能需要传递DOM元素。至少文档是这样显示它的使用情况的。如果我希望live同时对它们进行作用域,是否需要将上下文设置为#header和#context的父元素?如果我希望live同时对它们进行作用域,是否需要将上下文设置为#header和#context的父元素?