let hash;var link;
$(document).on("click", ".mobile_menu_container .parent", function(e) {
e.preventDefault();
var $this = $(this);
hash = $this.attr('href');
link = jQuery('a[href^="${location.hash}"]');
}
$(document).on("click", ".mobile_menu", function(e) {
e.preventDefault();
alert(link) // неопределенна
}
|
ureech,
видимо мы друг друга, не понимаем ... |
<div class="menu_container"> <a href="#" class="mobile_menu">Показать меню</a> </div> <div class="mobile_menu_container"> <div class="mobile_menu_content"> <ul> <li class="is-active"> <a href="#" class="">Компьютерная техника1</a> <ul><li class="is-active"> <a href="#" class="">Компьютерная техника2</a> <ul class="СЮДА"><li class="is-active"> <a href="#" class="">Компьютерная техника3</a> </li></ul></li></ul></li></ul> </div> </div> Нужно получить последний <li class="is-active"> и его <ul> присвоить класс |
Ну вроде получил. Хотя меню пока как нужно не работает)
$(document).on("click", ".mobile_menu", function(e) {
e.preventDefault();
let menu = document.querySelector('.mobile_menu_container');
let add = menu.querySelectorAll('li.is-active');
link = add[(add.length)-1];
link = $(link).parent();
console.log($(link))
if(link){
$(".mobile_menu_container").addClass("loaded");
$(".mobile_menu_overlay").fadeIn();
$(link[0]).addClass("loaded").addClass("activity");
}else{
$(".mobile_menu_container").addClass("loaded"), $(".mobile_menu_overlay").fadeIn()
}
})
|
ureech,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css"> ul.test{
background-color: #FF0000;
}
</style>
</head>
<body>
<div class="menu_container">
<a href="#" class="mobile_menu">Показать меню</a>
</div>
<div class="mobile_menu_container">
<div class="mobile_menu_content">
<ul>
<li class="is-active">
<a href="#" class="">Компьютерная техника1</a>
<ul><li class="is-active">
<a href="#" class="">Компьютерная техника2</a>
<ul class="СЮДА"><li class="is-active">
<a href="#" class="">Компьютерная техника3</a>
</li></ul></li></ul></li></ul>
</div>
</div>
<script>
let lis = [...document.querySelectorAll("li.is-active")];
lis.length && lis.pop().parentNode.classList.add("test");
</script>
</body>
</html>
|
Ну...У вас то покороче)))
|
ureech,
lis.length добавлено |
ureech,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
ul.test{
background-color: #FF0000;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function() {
$("li.is-active:last").parent().addClass("test");
});
</script>
</head>
<body>
<div class="menu_container">
<a href="#" class="mobile_menu">Показать меню</a>
</div>
<div class="mobile_menu_container">
<div class="mobile_menu_content">
<ul>
<li class="is-active">
<a href="#" class="">Компьютерная техника1</a>
<ul><li class="is-active">
<a href="#" class="">Компьютерная техника2</a>
<ul class="СЮДА"><li class="is-active">
<a href="#" class="">Компьютерная техника3</a>
</li></ul></li></ul></li></ul>
</div>
</div>
</body>
</html>
|
add.length && add.pop().parentNode.classList.addClass("loaded").addClass("activity");
[HTML]Uncaught TypeError: add.pop is not a function[/HTML]
console.log(add): NodeList(3) [ li.is-active, li.is-active, li.is-active] 0: <li class="is-active"> 1: <li class="is-active"> 2: <li class="is-active"> length: 3 |
ureech,
let lis = document.querySelectorAll("li.is-active");
lis.length && lis[lis.length - 1].parentNode.classList.add("test");
|
| Часовой пояс GMT +3, время: 17:54. |