关于如何使用+/-符号取消隐藏/隐藏文字,有old StackOverflow question。
Cheeso针对一些sample code发布了一个不错的解决方案。这正是我所寻找的,虽然原始海报并不同意。 : - )
我在网站上使用的代码是打算在移动设备上使用的。唯一的问题是,只要点击+/-,页面就会跳回到屏幕顶部。
反正有没有解决这个问题?感谢。
答案 0 :(得分:2)
在您的点击事件处理程序中,返回false。
$('a.selector').click(function() {
return false;
});
答案 1 :(得分:2)
以下是Cheeso在电子邮件中提供给我的答案。我在这里张贴它是为了其他人的利益。这没有用,我正在弄清楚原因。
如果更改此行 $('div p a [href =“#”]')。click(function(){expando(this);});
到此:
$('div p a [href =“#”]')。click(function(ev){ev.preventDefault(); expando(this);});
......我认为它应该停止滚动到顶部。
当用户点击具有哈希字符的链接时,浏览器应滚动到页面上放置片段标记的位置。喜欢书签。例如,在此网址中:http://en.wikipedia.org/wiki/Causes_of_WWII#Militarism片段(书签)是#Militarism,如果您点击该链接,您的浏览器将滚动到该部分。
在我写的那个样本的情况下,href是裸#字符,这意味着一个空片段。我想浏览器正在滚动到默认位置,我猜这是“页面顶部”。
要避免这种情况,只需在点击处理程序中调用ev.preventDefault()即可。这是一个jQuery技巧,可以抑制点击的正常处理;在您的情况下,它会抑制浏览器尝试滚动到不存在的锚点的部分。
答案 2 :(得分:1)
在点击处理程序中实施event.preventDefault()
。
$('a').click(function(e) {
e.preventDefault();
// more code here
});