我其实之前问过这个问题,但我没有得到我真正想要的。回到我的老话题适用于此网站:http://n-p-cain.com/schedule.html我希望,如果您点击“日期” “事件菜单部分”中的按钮您将跳转到“事件列表”中的该日期并且还将打开手风琴,现在手风琴保持关闭状态(如果我命名 class=“accordion-link1”或者如果您单击“事件菜单”中的按钮,手风琴将打开,但您不会跳转到它(如果我使用下面的代码)。 var acc = document.getElementsByClassName("accordion"); var i; for (i = 0; i < acc.length; i++) { acc[i].onclick = function() { this.classList.toggle("active"); var panel = this.nextElementSibling; if (panel.style.maxHeight){ panel.style.maxHeight = null; } else { panel.style.maxHeight = panel.scrollHeight + "px"; } } } // get list of links by class var links = document.getElementsByClassName("accordion-link"); var linksLength = links.length; for(var i=0; i < linksLength; i++){ links[i].onclick = function(e){ // preventDefault is probably optional // depending on your application e.preventDefault(); // isolate the hash var hash = e.target.hash; // remove # from hash hash = hash.substring(1, hash.length); // select by id using hash document.getElementById(hash).click(); } } @charset "utf-8";/* CSS Document */ /* Style the buttons that are used to open and close the accordion panel */button.accordion { background-color: #020725; color: #FFF; font-weight: bolder; cursor: pointer; padding: 10px; margin: 0px 5px 0px 5px; width: 98%; text-align: left; border: none; outline: none; transition: 0.4s; border-radius: 5px;}/* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */button.accordion.active, button.accordion:hover { background-color: #132437;}/* Style the accordion panel. Note: hidden by default */div.panel { padding: 1px; margin-bottom: 5px; background-color: #none; max-height: 0px; overflow: hidden; transition: max-height 0.2s ease-out;}
2 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
我认为如果您将 var hash = e.target.hash 更改为 var hash = window.location.hash 就会起作用。据我所知,点击事件对象不会返回 target.hash。
// get list of links by class
var links = document.getElementsByClassName("accordion-link");
var linksLength = links.length;
for(var i=0; i < linksLength; i++){
links[i].onclick = function(e){
// isolate the hash
var hash = window.location.hash;
// remove # from hash
hash = hash.substring(1, hash.length);
// select by id using hash
document.getElementById(hash).click();
}
}
- 2 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消