具有相同类的jquery-click元素
jquery click element with same class
我得到了元素列表,当我点击第一个时,其他10个元素也处于活动状态,如何只针对一个真正活跃的人?这是我的js代码
$(document).ready(function() {
$('.inspiration-row').on('click', function() {
$('inspiration-block').toggleClass('shift-left shift-right');
//$('.inspiration-block').toggleClass('span12 span8');
$('.inspiration-right').toggleClass('span0 span2');
});
});
通过这个js-fiddle链接,您可以根据自己的需求获得问题的答案。
JSFIDDLE
让我们考虑一下html页面中的p标签集。
<p class="active">If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>
<p>Click me one!</p>
<p>Click me two!</p>
<p>Click me three!</p>
<p>Click me four!</p>
要处理活动的p标签,请使用以下jquery代码
$(document).ready(function() {
$("p").click(function(event) {
$(event.target.tagName).not(this).removeClass("active");
$(this).addClass("active");
});
});
并将这个类添加到样式标签中的html页面中。
.active {
display: block;
color: red;
}
我写了一个fiddle来演示我的解决方案(如果它不能完全达到您的目的,请告诉我)。
$(function($) {
$(document).on('click', '.inspiration-row', function(event) {
var target = $(event.target).closest('.inspiration-row');
target.find('.inspiration-block').toggleClass('shift-left shift-right');
//$('.inspiration-block').toggleClass('span12 span8');
target.find('.inspiration-right').toggleClass('span0 span2');
});
});
这注册了一个捕获$
的就绪回调,因此如果另一个脚本加载jquery,它不会影响我们。它使用事件委派来捕获整个页面上与.inspiration-row
匹配的元素内发生的所有click
事件。
event.target
指的是事件的来源,即事件所来自的元素。我使用.closest
从实际点击的祖先开始搜索,以找到与.inspiration-row
匹配的最近祖先。
从那里,target
指的是整个.inspiration-row
,我们寻找这两个派生选择器并切换适当的类。
你在切换两个类名,好像这会让它选择其中一个。只有当元素最初具有其中一个名称时,这才是真的。我在第一个inspiration-row
中添加了一个类名,所以切换会使它在任何时候都有一个或另一个。
您可以将您的点击回调函数替换为以下函数,以针对您感兴趣的特定块:
function( event ) {
$(event.target).closest('.inspiration-block').toggleClass('shift-left shift-right');
...
});
使用
$(this).toggleClass('shift-left shift-right');
相关文章:
- 具有相同类的jquery-click元素
- iframe中的jquery-click元素
- jQuery.click();不要对特定的元素开火
- jQuery .click() 事件未在 msDropDown 元素上触发
- 使用属性 “title” 将 html 元素链接到 jQuery.click()
- 刷新父窗口中的 jquery .click 侦听器以处理新元素
- 为什么我不能用jQuery.click()定位li元素
- jQuery .click 停止所有具有相同类的元素在单击时打开
- 将jQuery.click()函数用于单个元素
- 如何在jquery.click()事件中排除元素类作为目标
- jQuery click()事件未在AJAX加载的HTML元素上启动
- jQuery:click()无法处理jQuery添加的元素
- jQuery-click事件没有添加到每个元素中
- 在不存在的html元素上触发jQuery.click()事件
- Jquery .click()函数在特定属性上,返回多个元素
- JavaScript/jQuery -重用事件'Click'元素的
- jQuery .click(处理程序)在Greasemonkey脚本中查找输入元素空白(然而addEventListen
- 如何在jQuery click()函数中访问调用元素'
- 在IE7中,我如何在jquery .click事件期间使用ajax调用设置全局变量或元素值
- 每隔5秒在一个元素上重复运行一次jQuery.click事件