如何找到第一个“可见”的;& lt; li>在<ul>使用jQuery
How to find the first "visible" <li> inside a <ul> using jQuery?
我不能做$('ul li:first')
或$('ul li:eq(0)')
,因为它们选择的第一个项目不一定是第一个可见项目。
我正在使用jCarousel Lite插件:
它的工作原理是每次点击next时通过给它负边距来向左移动ul,点击prev时向右移动ul。
我想给第一个可见列表项一个红色的边框颜色。插件没有添加任何标记的第一个可见项目在列表中,所以我怎么能瞄准它?
注:$('ul li:visible').is(':first')
也不会工作,因为插件实际上并没有给不可见的列表任何显示无属性。
From: http://www.gmarwaha.com/jquery/jcarousellite/#doc您可以使用afterEnd回调函数:
afterEnd -动画结束后应该调用的回调函数。表示动画结束后可见的项的元素作为参数传入。
$(".carousel").jCarouselLite({
btnNext: ".next",
btnPrev: ".prev",
afterEnd: function(a) {
$(a[0]).addClass("redBorder");
}
});
有点繁琐。这将计算出应用于jCarousel的left
偏移量,将其除以内部li
项的宽度,以计算出该li
的剩余数量,然后将其转换为内部的:eq()
。
var firstVisibleListItem = 0 - (parseInt($('.jCarouselLite ul').css('left')) / parseInt($('.jCarouselLite ul li').css('width'))) + 1
$('.jCarouselLite ul li').filter(':eq(' + firstVisibleListItem + ')').hide();
选择第一个<li>
,您可以这样做:
$('ul li').filter(":first"); // best performance, as indicated in the API documentation
你能算出第一个可见的项目(假设你知道有多少项在同一时间可见),当页面最初加载?如果是,那么你可以通过监控上一个/下一个按钮被点击来跟踪(例如,当下一个按钮被点击时,你会增加你的计算位置)。
试试这个:)$('ul li:first-child')
我总是用它
我将第一项的边框颜色设置为红色。
.jCarouselLite ul li:first-child{
border: 1px solid red;
}
试试这个:
$('ul li').first(); // ta da?
相关文章:
- 使用jquery动态创建ul-li
- 使用下拉列表筛选列表(ul>li)
- 隐藏/显示包含单词的ul li项目.但只能入住李的子女
- ul-li专属功能
- 在jQuery UI中获取ul和li值,拖放即可排序
- nextSibling ul li ul
- 如何在应用切换点击功能之前,默认情况下在页面加载时隐藏带有特定类的ul-li
- 有没有一种方法可以检测一行何时随着浮动左LI的UL而改变
- jQuery复选框(在ul>li下)检查事件
- 加载更多li's在ul-JQuery中
- 自动完成搜索无法正常工作,请不要迭代$中的所有元素.每个ul-li都会及时显示响应
- Javascript 从嵌套的 UL LI 复选框生成递归 JSON 对象
- 使用jquery在ul菜单中添加li dynamic
- 有角度的自动建议文本排版和html ul li下拉列表
- Jquery菜单UL LI插入
- 更改Jquery UL li筛选器中的链接颜色
- 如何在 li ul 中获取跨度动态值
- 如何获取所有LI UL元素ID值并将它们放置在JavaScript数组中
- 获取Ul-li宽度,并将其设置为Ul-li-Ul的宽度
- 如何创建嵌套的li-ul-li元素