使用javascript显示/隐藏div而不刷新页面
我有一个脚本,在页面上显示/隐藏多个独立的div。 问题是当你点击显示一个div时,无论页面在哪里,它都会自动关注第一个div。 有没有办法专注于显示的div?
这是javascript:
function toggleOptions(e) { var ele = e; var text = e.parentElement.querySelector('.toggleOptions') if(text.style.display == "none") { //ele.style.display = "none"; text.style.display = "block"; text.innerHTML = "TESTING"; ele.innerHTML = "hide"; } else { text.style.display = "none"; //text.innerHTML = "Hide GPS"; ele.innerHTML = "show"; } return false; }
这是html:
show ITEM 1 OPTIONS show ITEM 2 OPTIONS show ITEM 3 OPTIONS
这是http://jsfiddle.net/YE6XZ/1/的工作方式
为您的节目链接提供一个类,例如:
show
然后将其添加到您的jQuery:
$('a.show').click(function(e){ e.preventDefault(); });
书签锚点( href="#"
)的默认操作是跳转到页面顶部。 这样可以防止这种情况 jsFiddle示例
另一种无jQuery的方法是将你的onclicks更改为:
onclick="return toggleOptions(this);"
因为你已经回归假。 jsFiddle示例
我相信你也可以使用.focus()
方法来专注于给定的元素。 在你的例子中:
function toggleOptions(e) { var ele = e; var text = e.parentElement.querySelector('.toggleOptions') if(text.style.display == "none") { //ele.style.display = "none"; text.style.display = "block"; text.innerHTML = "TESTING"; text.focus(); //This should give focus to the newly shown text element ele.innerHTML = "hide"; } else { text.style.display = "none"; //text.innerHTML = "Hide GPS"; ele.innerHTML = "show"; } return false; }
除非我误解你要做什么….
在href中使用javascript:void(0)。 使用javascript函数显示或隐藏使用id
Show