jquery 点击使元素置顶
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 点击使元素置顶相关的知识,希望对你有一定的参考价值。
手机常用问题列表,点击某个问题时,展开答案,同时问题置顶,但是列表顺序没变。。。类似锚点链接的效果。。。jquery要如何实现
估计你的意思是,点击列表,列表的内部内容展开,然后,当前问题提升到窗口的顶部(让当前问题占据当前页面的高度——或许高度不够)。这个和锚点无关。
首先,你要对列表进行遍历。$('#问题 ul li').each(function()),这样,可以给每个列表元素绑定一次事件。
其次,要整理好你的html结构,因为,你需要使用到这个li的诸多属性和结构。
然后,获取当前li的顶部偏移,使用$(this).offset().top;
继续,给问题标题一个点击事件,点击后,执行问题内容的展开操作。
你知道,展开是有2种方法的slideDown()和animate();他们两个都有callback回调方法。因此,在回调中加入一个回到顶部的代码。
$('html,body').stop(true,false).aniamte('scrollTop' : li元素偏移值)。这样,页面就被“拉”上去了,位置刚好是当前列表的顶部。 参考技术A 你陷入了设计死角,直接写锚点连接,再写jquery的点击方法就行了,不要学了jquery就什么都用jquery实现,达到活用追问
锚点要一个锚点点击跳到另一个锚点把 我就是这个拐不过弯
追答貌似没人说不能指定自己吧,自己跳自己就行了
追问不是锚点就实现不了了把,跳转的是一块div的内容
追答我给你写个小例子你看看吧
追问好 谢谢 我可以加你不 以后还可以求助
追答不知道是否符合你的要求,我理解的是答案最开始应该是关闭状态吧,这是类似的实现,如果不是请参照慢慢修改吧,其实不难
点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态
给tr添加点击事件,使用find方法查找tr下的所有层级的元素,children只查找下一层级的元素,所以使用find。
find的返回值为jquery对象,在这个项目中不知道为什么使用jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态,所以我就把jquery对象转换为DOM对象,怎么转呢?jquery对象[0]或者get(0)就转换成DOM对象,然后直接.checked返回true或false就可以判断checkbox是否选中了。然后判断状态,改变状态。
$("tr").click(function(e){
var check = $(this).find("input[type=‘checkbox‘]");
if(check){
var flag = check[0].checked;
if(flag){
check[0].checked = false;
}else{
check[0].checked = true;
}
}
});
到这还没有结束,当点击checkbox的时候出现了问题。是因为点击checkbox的时候同时也点击了tr,所以checkbox的状态只是闪一下,没有改变。要解决这个问题使用下面代码就可以实现。给checkbox添加阻止冒泡事件,三行代码就搞定了。
$("input[type=‘checkbox‘]").click(function(e){
e.stopPropagation();
});
解决 jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态 除了转换成dom外还可以
$(".list-msg li").click(function(){
obj=$(this).find("input[type=checkbox]");
//alert(obj.is(":checked"))
if(obj.is(":checked")){
obj.prop("checked", false)
}else{
obj.prop("checked", true)
}
})
jquery 1.6以上版本 设置boolean值的属性时要用prop。而不是attr
以上是关于jquery 点击使元素置顶的主要内容,如果未能解决你的问题,请参考以下文章
jquery sortable使用户能够在`n`秒后拖动元素
点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态