jQuery-如果元素在同一行,则具有不同的事件
jQuery - have different events if element is on the same row
我有一个页面,其中有一行响应框。。。。。。。。
因此,调整窗口大小越小,每行框的数量就会减少
这里有一把小提琴向你展示的情况
http://jsfiddle.net/abtPH/6/
现在的行为是……如果你点击一个框,那么它下面会出现一个div……如果点击下一个框的话,div会向上滑动一点,然后向下滑动,显示新的内容。。。
我希望这样,如果盒子在同一行,用户点击下一个,它不会上下滑动,而是在中淡出内容
我只想当盒子在另一排时它向上滑动。。。像下面
这是我迄今为止的jquery
$('li').on('click', function(e){
$(this).siblings('.active').toggleClass('active', 400).find('.outer').slideToggle();
$(this).find('.outer').slideToggle();
$(this).toggleClass('active', 400);
});
诀窍是检测同一行上的内容。为此,我认为position()
函数正是您所需要的。单击列表项时,请检查是否已存在活动项,如果已存在,请检查当前项和活动项是否具有相同的顶部值。如果它们进行交叉渐变,则切换。
$('li').on('click', function(e){
var active = $(this).siblings('.active');
var posTop = ($(this).position()).top;
if (active.length > 0) {
var activeTop = (active.position()).top;
if (activeTop == posTop) {
active.toggleClass('active', 400).find('.outer').fadeOut('slow');
$(this).find('.outer').fadeIn('slow');
} else {
$(this).siblings('.active').toggleClass('active', 400).find('.outer').slideToggle();
$(this).find('.outer').slideToggle();
}
} else {
$(this).find('.outer').slideToggle();
}
$(this).toggleClass('active', 400);
});
jsFiddle
相关文章:
- 分派点击事件并保留击键修饰符
- onKeyUp 事件计算不适用于 PHP 生成的表单中的以下行,除了第一行
- 在一行中编写事件处理程序函数
- Jquery.on(change)事件on<选择>输入仅更改第一行
- jQuery-如果元素在同一行,则具有不同的事件
- 如何在执行下一行代码之前等待主干事件触发器完成
- javascript点击一行并触发该行"onclick”;事件
- 使用javascript XML XSLT在最后一行设置单击事件
- 向表中的每一行添加onclick事件
- 当复选框选中一行中的事件被触发时,单击事件也会触发
- 当我触发这个jquery事件时,表的另一行中的其他元素也被触发了,这是我想要防止的
- 向Flexigrid的一行添加onclick事件
- 用于一行中的多个对象的事件侦听器
- 通过克隆带有附加事件的最后一行,在表主体上添加新行
- 将事件处理程序添加到仅影响该表行的每一行
- 为表- MVC中的每一行运行OnChange事件
- 在ASP中对异步ajax事件执行一行javascript.NET
- 事件流.js我如何引用每一行,即 (0) 、(1) 等
- 如何在鼠标单击事件时从动态表中选择一行
- Javascript冲突多主体onload事件需要排在第一行