gpt4 book ai didi

javascript - js Accordion 不工作 IE9

转载 作者:行者123 更新时间:2023-11-28 06:50:45 24 4
gpt4 key购买 nike

此页面上的第一个问题。我有一个动画 css/js Accordion ,我从这个页面 http://codepen.io/chriswrightdesign/pen/cmanI我刚刚在 jsp web 应用程序中实现了它。

它在 Chrome、Firefox 和 IE 11 中运行良好。但在 IE 9 中无法正常显示。据我所知,我需要对一些 js 组件(classList、setAttribute 和 querySelectorAll)进行 polyfill,以便让功能在最后一个导航器中正常工作。

老实说,我对如何填充这段 js 代码一无所知。所以如果有人能帮助我,我真的很感激。

    //uses classList, setAttribute, and querySelectorAll
//if you want this to work in IE8/9 youll need to polyfill these
(function(){
var d = document,
accordionToggles = d.querySelectorAll('.js-accordionTrigger'),
setAria,
setAccordionAria,
switchAccordion,
touchSupported = ('ontouchstart' in window),
pointerSupported = ('pointerdown' in window);

skipClickDelay = function(e){
e.preventDefault();
e.target.click();
}

setAriaAttr = function(el, ariaType, newProperty){
el.setAttribute(ariaType, newProperty);
};
setAccordionAria = function(el1, el2, expanded){
switch(expanded) {
case "true":
setAriaAttr(el1, 'aria-expanded', 'true');
setAriaAttr(el2, 'aria-hidden', 'false');
break;
case "false":
setAriaAttr(el1, 'aria-expanded', 'false');
setAriaAttr(el2, 'aria-hidden', 'true');
break;
default:
break;
}
};
//function
switchAccordion = function(e) {
e.preventDefault();
var thisAnswer = e.target.parentNode.nextElementSibling;
var thisQuestion = e.target;
if(thisAnswer.classList.contains('is-collapsed')) {
setAccordionAria(thisQuestion, thisAnswer, 'true');
} else {
setAccordionAria(thisQuestion, thisAnswer, 'false');
}
thisQuestion.classList.toggle('is-collapsed');
thisQuestion.classList.toggle('is-expanded');
thisAnswer.classList.toggle('is-collapsed');
thisAnswer.classList.toggle('is-expanded');

thisAnswer.classList.toggle('animateIn');
};
for (var i=0,len=accordionToggles.length; i<len; i++) {
if(touchSupported) {
accordionToggles[i].addEventListener('touchstart', skipClickDelay, false);
}
if(pointerSupported){
accordionToggles[i].addEventListener('pointerdown', skipClickDelay, false);
}
accordionToggles[i].addEventListener('click', switchAccordion, false);
}
})();

最佳答案

对于一个,classList在 IE9 中不受支持,因此如果需要 IE9 支持,您肯定必须构建后备。

关于javascript - js Accordion 不工作 IE9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33785110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com