Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery选择器与元素不匹配_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript jQuery选择器与元素不匹配

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">

我有一些jQuery,现在让我有点头疼。这一切归结为选择器是如何工作的

我有一些HTML格式:

<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内的锚。