jQuery正在添加类并单击,但同时表现为单击
我有一个后退按钮,它使用以下HTMLjQuery正在添加类并单击,但同时表现为单击,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');
<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。