我正在一个网站上进行一些默认的jquery设置,我试图覆盖它。它既庞大又复杂,因此我将尝试尽可能简单地进行解释。
我有一个称为“ dropdown-container”的div,在该div内是一个带有下拉列表的锚链接。删除了下拉式容器上的所有默认jquery类(例如“ ui-state-hover”等)。当页面加载时,这可以正常工作-删除所有那些默认的jquery类。但是,一旦我单击div中的anchor标签,这些类就会重新添加到我的“下拉容器”中,这弄乱了我要实现的目标。
有没有办法确保这些类永远不会被添加回我的“下拉容器”中,无论如何?
这是我的jquery代码:
function mobileMainNav(){
jQuery(".footer-menu-accordion").accordion({
collapsible: true,
active: ".level2-featured, .level3-featured, .level4-featured, .level4",
autoHeight:false
});
$('.dropdown-container').removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-hover ui-state-active ui-corner-top");
$('.dropdown-container').click(function(e){
e.preventDefault();
e.stopPropogation();
$('.dropdown-container').removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-hover ui-state-active ui-corner-top");
})
$('a.level-1.direct').click(function(e){
window.location = $(this).attr('href');
});
};
答案 0 :(得分:0)
您可以隐藏整个下拉列表容器,然后使用自己的下拉列表在控件之间映射值。这样,您就不必担心下拉菜单重新格式化。
另一个选择是包装一个计时器事件,该事件将不断轮询以重新出现一个类,然后将其删除。 YMMV提供的用户体验。
例如
function clearClass() {
$(".ui-accordion-header").removeClass(".ui-accordion-header");
}
setInterval(clearClass, 1000);
最后,您可以删除顶级dropdown-container(也许给它一个类dropdown-container2)并更新必要的样式。我假设ui库正在检查dropdown-container类。