Я следующий рабочий код надрез:
$(".container.menu > section > article").mCustomScrollbar("destroy");
метод не будет работать с вар - объект
Теперь я начал, чтобы сохранить каждый элемент в переменной в JQuery. Так что я написал снип немного по-другому:
var containerMenu = $(".container.menu"),
sectionMenu = containerMenu.children("section"),
articleMenu = sectionMenu.children("article");
$(articleMenu).mCustomScrollbar("destroy");
Но когда я пишу так, это не сработает.
Затем я снова попытался что-то другое:
var articleMenu = $(".container.menu > section > article");
articleMenu.mCustomScrollbar("destroy");
Но и это не будет работать.
Наконец, я попытался окружить articleMenu со скобками JQuery:
$(articleMenu).mCu...
Но это также не будет работать.
Так почему же это не сработает? Я не хочу всегда писать весь селектор jQuery, просто вызовите переменную.
Edit:
var container = $(".container"),
section = container.children("section"),
article = section.children("article"),
menuTrigger = container.children(".menu-trigger"),
containerMenu = $(".container.menu"),
sectionMenu = containerMenu.children("section"),
articleMenu = $(".container.menu > section > article");
function triggerMenu(){
container.toggleClass("menu");
if(container.hasClass("menu")){
// won't work
articleMenu.mCustomScrollbar("destroy");
// will work
$(".container.menu > section > article").mCustomScrollbar("destroy");
}
}
эта версия не будет работать. Когда я заменяю articleMenu
, он работает.
Edit2: HTML:
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>index</title>
<link rel="shortcut icon" href="../favicon.ico">
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" type="text/css" href="css/jquery.mCustomScrollbar.css" />
<script src="js/modernizr.custom.js"></script>
</head>
<body>
<div class="container">
<a href="#" class="menu-trigger">menu</a>
<section>
<article class="about active">
<h1>about</h1>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</a></p>
</article>
<article class="design">
<h1>design</h1>
<p>this is an article</p>
<p>have fun with it</p>
</article>
<article class="photography">
<h1>photography</h1>
<p>this is an article</p>
<p>have fun with it</p>
</article>
</section>
</div>
<!-- Additional javascript plugins -->
<script src="js/jquery-2.0.3.min.js"></script>
<script src="js/jquery.mCustomScrollbar.min.js"></script>
<script src="js/script.js"></script>
<script>
(function($){
$(window).load(function(){
$("article").mCustomScrollbar({
contentTouchScroll: true,
mouseWheelPixels: 300,
autoHideScrollbar: true,
scrollButtons:{
enable: true,
scrollType: "continuous",
scrollSpeed: 300
},
advanced:{
autoScrollOnFocus: true
}
});
});
})(jQuery);
</script>
</body>
</html>
script.js
$(document).ready(function() {
var container = $(".container"),
section = container.children("section"),
article = section.children("article"),
menuTrigger = container.children(".menu-trigger"),
containerMenu = $(".container.menu"),
sectionMenu = containerMenu.children("section"),
articleMenu = $(".container.menu > section > article");
function triggerMenu(){
container.toggleClass("menu");
if(container.hasClass("menu")){
// articleMenu.mCustomScrollbar("destroy");
$(".container.menu > section > article").mCustomScrollbar("destroy");
}
}
function init(){
menuTrigger.on("click", triggerMenu);
}
init();
})();
Сразу после определения ваших переменных console.log каждого из них. –