和你好朋友。
我需要为网站制作响应式设计。我在<h2>
标记后隐藏元素有一个问题。基本上我正在尝试为<div class="gadget cats">
添加一个事件监听器,它将在点击时显示和隐藏以下元素。
最有趣的部分是这个项目在CMS上,所以对我来说,不建议在HTML
中进行更改。
伙计们,我需要你的支持,请帮助我!
jQuery('.cats .catalog').on('click', function() {
jQuery(this).find('ul.catalog').slideToggle("slow");
});
这是HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gadget cats">
<h2>Каталог</h2>
<ul class="catalog menusm">
<li class="passive">
<a href="/cat/325"></a>
</li>
<li class="passive">
<a href="/cat/402"></a>
</li>
<li class="passive">
<a href="/cat/428"></a>
</li>
<li class="passive">
<a href="/cat/129"></a>
</li>
<li class="passive">
<a href="/cat/304"></a>
</li>
<li class="passive">
<a href="/cat/405"></a>
</li>
<li class="passive">
<a href="/cat/348"></a>
</li>
<li class="passive">
<a href="/cat/404"></a>
</li>
<li class="passive">
<a href="/cat/44"></a>
</li>
<li class="active">
<a href="/cat/133"></a>
<ul>
<li>
<a href="/cat/143"></a>
</li>
<li>
<a href="/cat/153"></a>
</li>
<li>
<a href="/cat/146"></a>
</li>
<li>
<a href="/cat/151"></a>
</li>
<li>
<a href="/cat/180"></a>
</li>
<li>
<a href="/cat/181"></a>
</li>
<li>
<a href="/cat/178"></a>
</li>
<li>
<a href="/cat/179"></a>
</li>
<li>
<a href="/cat/185"></a>
</li>
<li>
<a href="/cat/208"></a>
</li>
</ul>
</li>
<li class="passive">
<a href="/cat/126"></a>
</li>
<li class="passive">
<a href="/cat/315"></a>
</li>
<li class="passive">
<a href="/cat/82"></a>
</li>
<li class="passive">
<a href="/cat/244"></a>
</li>
<li class="passive">
<a href="/cat/247"></a>
</li>
<li class="passive">
<a href="/cat/142"></a>
</li>
<li class="passive">
<a href="/cat/197"></a>
</li>
<li class="passive">
<a href="/cat/340"></a>
</li>
<li class="passive">
<a href="/cat/414"></a>
</li>
<li class="passive">
<a href="/cat/416"></a>
</li>
<li class="passive">
<a href="/cat/415"></a>
</li>
<li class="passive"><a href="/cat/425">TRX</a></li>
</ul>
</div>
答案 0 :(得分:1)
您正尝试在.cats .catalog
元素上创建一个事件监听器并尝试切换自己。
基本上你是“在自己身上找到一个元素”(.catalog
)。因此,这不起作用。
尝试在另一个元素上创建只说.cats
jQuery('.cats').on('click', function() {
jQuery(this).find('ul.catalog').slideToggle("slow");
});
答案 1 :(得分:0)
从选择器.catalog
中删除此类,并将selectot添加为.cats h2
并获取parent div
并从div中找到ul.catalog
并应用slideToggle
。
jQuery('.cats h2').on('click', function() {
jQuery(this).parent('div').find('ul.catalog').slideToggle("slow");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gadget cats">
<h2>Каталог</h2>
<ul class="catalog menusm">
<li class="passive">
<a href="/cat/325"></a>
</li>
<li class="passive">
<a href="/cat/402"></a>
</li>
<li class="passive">
<a href="/cat/428"></a>
</li>
<li class="passive">
<a href="/cat/129"></a>
</li>
<li class="passive">
<a href="/cat/304"></a>
</li>
<li class="passive">
<a href="/cat/405"></a>
</li>
<li class="passive">
<a href="/cat/348"></a>
</li>
<li class="passive">
<a href="/cat/404"></a>
</li>
<li class="passive">
<a href="/cat/44"></a>
</li>
<li class="active">
<a href="/cat/133"></a>
<ul>
<li>
<a href="/cat/143"></a>
</li>
<li>
<a href="/cat/153"></a>
</li>
<li>
<a href="/cat/146"></a>
</li>
<li>
<a href="/cat/151"></a>
</li>
<li>
<a href="/cat/180"></a>
</li>
<li>
<a href="/cat/181"></a>
</li>
<li>
<a href="/cat/178"></a>
</li>
<li>
<a href="/cat/179"></a>
</li>
<li>
<a href="/cat/185"></a>
</li>
<li>
<a href="/cat/208"></a>
</li>
</ul>
</li>
<li class="passive">
<a href="/cat/126"></a>
</li>
<li class="passive">
<a href="/cat/315"></a>
</li>
<li class="passive">
<a href="/cat/82"></a>
</li>
<li class="passive">
<a href="/cat/244"></a>
</li>
<li class="passive">
<a href="/cat/247"></a>
</li>
<li class="passive">
<a href="/cat/142"></a>
</li>
<li class="passive">
<a href="/cat/197"></a>
</li>
<li class="passive">
<a href="/cat/340"></a>
</li>
<li class="passive">
<a href="/cat/414"></a>
</li>
<li class="passive">
<a href="/cat/416"></a>
</li>
<li class="passive">
<a href="/cat/415"></a>
</li>
<li class="passive"><a href="/cat/425">TRX</a></li>
</ul>
</div>
答案 2 :(得分:0)
<强> CSS 强> .cats {min-height:500px;} 的的jQuery 强>
jQuery('.cats').on('click', function() {
jQuery(this).find('ul.catalog').slideToggle("slow");
});