Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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
jQuery正在添加类并单击,但同时表现为单击_Jquery_Html - Fatal编程技术网

jQuery正在添加类并单击,但同时表现为单击

jQuery正在添加类并单击,但同时表现为单击,jquery,html,Jquery,Html,我有一个后退按钮,它使用以下HTML <div class="back-from-professors level-one">Back</div> 然后,我想在以下情况下应用 jQuery('.professor-list').on('click','.professor.show', function() { jQuery(this).parent().find('.back-from-professors').addClass('level-two');

我有一个后退按钮,它使用以下HTML

<div class="back-from-professors level-one">Back</div>
然后,我想在以下情况下应用

jQuery('.professor-list').on('click','.professor.show', function() {

    jQuery(this).parent().find('.back-from-professors').addClass('level-two');
    jQuery(this).parent().find('.back-from-professors').removeClass('level-one');       
    jQuery(this).next().addClass('show');
    jQuery(this).removeClass('show');

}); 

jQuery('.professor-list').on('click','.back-from-professors.level-two', function() {

    jQuery(this).parent().find('.grey-list-item.professor').addClass('show');
    jQuery(this).parent().find('.grey-list-professor-details').removeClass('show');
    jQuery(this).removeClass('level-two');
    alert('test');
    jQuery(this).addClass('level-one');     

}); 
然而,当我点击
。从教授那里返回。第二级
按预期进行,然后发出警报
测试
。然后,它添加类
level-one
,然后还执行上面我的第一个jQuery代码中的操作,也就是说,它应用
jQuery('.research box container')。on('click','.back from professors.level-one',function(){})的操作

这是否应该发生在()上的
.on

我可以在这里复制这个问题。。。
(jsfiddle更新)

您的问题是
。教授名单
研究箱容器中。因此,当您单击
back
时,它会出现附加到
.professor list
的事件,您可以看到:-

jQuery('.professor-list').on('click','.back-from-professors.level-two', function() {
然后添加
。一级
。然后,当它再次冒泡到下一个元素
。research box container
附加的事件

jQuery('.research-box-container').on('click', '.back-from-professors.level-one', function() {
在类
中查找元素。级别1

最简单的修复方法是将两者都附加到
.research box container

因此:-


您的问题是
。教授列表
。研究箱容器内
。因此,当您单击
back
时,它会出现附加到
.professor list
的事件,您可以看到:-

jQuery('.professor-list').on('click','.back-from-professors.level-two', function() {
然后添加
。一级
。然后,当它再次冒泡到下一个元素
。research box container
附加的事件

jQuery('.research-box-container').on('click', '.back-from-professors.level-one', function() {
在类
中查找元素。级别1

最简单的修复方法是将两者都附加到
.research box container

因此:-


是的,从教授那里回来。里面是二级。从教授那里回来。一级?可能正在向上传播。试着在里面停下来。从教授那里回来。二级。不,他们是同一个元素,所以我不明白为什么会这样。它不寻常,因为它在
alert('test')之后一直按预期完美工作,而不仅仅是简单地添加类,它似乎完成了我在第一个jQuery函数中添加的所有事情
jQuery(this.addClass('level-one')之后但是没有luckCan可以制作一个JSFIDLE来演示这个问题吗?问题是,从教授那里回来。里面是二级。从教授那里回来。一级?可能正在向上传播。试着在里面停下来。从教授那里回来。二级。不,他们是同一个元素,所以我不明白为什么会这样。它不寻常,因为它在
alert('test')之后一直按预期完美工作,而不仅仅是简单地添加类,它似乎完成了我在第一个jQuery函数中添加的所有事情
jQuery(this.addClass('level-one')之后但是没有luckCan可以制作一个JSFIDLE来演示这个问题吗?问题:哇,太好了,谢谢!快速提问,即使问题已经解决,我仍然不完全理解为什么它决定触发
jQuery('.research box container')。在('click','上。从professors.level-one',function()返回)
在添加课程后。我理解这一点,因为
.professor list
里面。研究箱容器
点击其中两个,但我会认为
。从教授那里回来。一级
仍然不会“存在”但是,如果你明白我的意思!我的意思是为特定的点击而存在点击从元素向上传播。因此,当它在.professor列表中添加.level-one时。然后事件向上移动到.research box container。现在它找到了.level-one.Wow完美,谢谢!快速提问,尽管问题已经解决,但我仍然不完全理解它为什么决定这么做触发器
jQuery('.research box container')。在('click','上。从professors返回。一级',函数()
在添加课程后。我理解这一点,因为
.professor list
里面。研究箱容器
点击其中两个,但我会认为
。从教授那里回来。一级
仍然不会“存在”但是,如果你明白我的意思!我的意思是存在于特定的点击。点击从元素向上传播。因此,当在.professor列表中添加.level 1时。然后事件向上移动到.research box容器。现在它找到了.level 1。