Мне нужно удалить определенный класс css из .nav
, так что он подходит правильно. Сейчас его поведение неожиданно основано на разных размерах экрана.
Пример скрипта
Вы заметите, что раскрывающиеся подменю отображаются неправильно. Я хочу, чтобы раскрывающийся список показывался с правой стороны раскрывающегося списка, когда он имеет достаточное пространство справа и слева от раскрывающегося списка, когда у него меньше места на основе ширины <div class="main-wrapper">
, которая ширина 1000px.
Я попытался исправить это с помощью следующего кода, но он не работает должным образом:
$(document).ready(function(){
$(".nav").on("mouseenter", " > li", function(){
/*if dropdown is likely to go out of parent nav then right align it :) */
if (($(this).offset().left) + 200 > $('.menu-wrapper').width()) {
$(this).find(".dropdown").addClass("dropdown-last");
}
if($(this).hasClass("has-panel")){
// $(this).find(".dropdown").removeClass("dropdown-last");
//alert('has class');
}
else
{
//alert('has no class');
}
});
/* if dropdnw*/
$(".dropdown").each(function(){
var $this = $(this);
if($this.find(".dd-panel").length > 0){
$this.addClass('has-panel');
}
if($this.find(".dd-panel").length = 1){
$(".dropdown").css( "min-height", "80px" );
}
});
});
При отладке он показывает следующее: dropdown has-panel dropdown-last
список dropdown has-panel dropdown-last
div dropdown has-panel dropdown-last
если он имеет div с классом has-panel
и тот, у которого нет мега-меню для него, показывается класс в качестве dropdown dropdown-last
. Я пытался проверить с помощью jQuery, чтобы увидеть, есть ли у элемента класс или нет. Если у него есть has-panel
с классом, то ничего не делать и если у нее нет has-panel
с классом, тогда мне нужно удалить dropdown-last
список класса dropdown-last
из того же элемента, который не работает со следующим кодом:
if($(this).hasClass("has-panel")){
// $(this).find(".dropdown").removeClass("dropdown-last");
alert('has class');
}
else
{
//alert('has no class');
}
Решено использовать код
if( $(this).find(".dropdown").hasClass("has-panel")){
// $(this).find(".dropdown").removeClass("dropdown-last");
//alert('has class');
}
else
{
//alert('has no class');
$(this).find(".dropdown").removeClass("dropdown-last");
}
удалите $(window).load(function(){}
и он будет работать