Javascript jQuery选择器与元素不匹配
我有一些jQuery,现在让我有点头疼。这一切归结为选择器是如何工作的 我有一些HTML格式:Javascript jQuery选择器与元素不匹配,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一些jQuery,现在让我有点头疼。这一切归结为选择器是如何工作的 我有一些HTML格式: <div id="master"> <div class="row"> <div class="medium-6 columns"> <div class="medium-6 right columns"> <div class="pagerContent">
<div id="master">
<div class="row">
<div class="medium-6 columns">
<div class="medium-6 right columns">
<div class="pagerContent">
<div class="pagination">
<div class="page">
<ul>
<li>
<a href="#">
......
etc.
它是有效的,但如果我使用
$(".pagination a", "#master").on('click', function (event) {
-- code --
});
事实并非如此。你的两个例子略有不同 这将使用延迟事件处理
$('#master').on('click', '.pagination a', function (event) {
-- code --
});
基本上,单击
由#master
处理,并且仅当选择器匹配分页a
时才会触发。如果在DOM加载后动态地将任何子/子体添加到页面中,这种方法就可以工作
这并不是:
$(".pagination a", "#master").on('click', function (event) {
-- code --
});
它将
click
事件直接附加到“matching.pagination a
的#master
子体”上,因此在附加处理程序时要求元素出现在DOM中。您的两个示例有细微的不同
这将使用延迟事件处理
$('#master').on('click', '.pagination a', function (event) {
-- code --
});
基本上,单击
由#master
处理,并且仅当选择器匹配分页a
时才会触发。如果在DOM加载后动态地将任何子/子体添加到页面中,这种方法就可以工作
这并不是:
$(".pagination a", "#master").on('click', function (event) {
-- code --
});
它将
click
事件直接附加到“matching#master
matching.pagination a
”上,因此在附加处理程序时要求元素存在于DOM中。您好,谢谢大家回复。我仍然有困难让这个工作,所以我已经尝试了一种不同的方式,这对我来说是可行的
对于每个链接标记,我都定义了一个特定的类作为标识符
<a href="#"></a>
我现在可以处理这些链接了。大家好,谢谢大家回复。我仍然有困难让这个工作,所以我已经尝试了一种不同的方式,这对我来说是可行的 对于每个链接标记,我都定义了一个特定的类作为标识符
<a href="#"></a>
我现在可以处理链接了。$(“.pagination a,#master”)删除逗号。这应该适用于
$(“.pagination a,#master”)
。请仔细看看@AlexandrMalyita,它的意图与OP的代码大不相同。对jQuery选择器$()
使用第二个参数应该以父元素为目标。你基本上把它改成了AND。你的锚定标签是动态创建的吗?也许这就是为什么当DOM准备就绪时,如果所有html都存在,那么第二个代码应该可以工作的原因。@manpreethingh-该选择器将同时选择主div和分页div内的锚。$(“.pagination a,#master”)删除逗号。这应该适用于$(“.pagination a,#master”)
。请仔细看看@AlexandrMalyita,它的意图与OP的代码大不相同。对jQuery选择器$()
使用第二个参数应该以父元素为目标。你基本上把它改成了AND。你的锚定标签是动态创建的吗?也许这就是为什么当DOM就绪时,如果所有html都存在,那么第二个代码应该可以工作的原因。@manpreethingh-选择器将同时选择主div和分页div内的锚。