在我的平板電腦導航中,有一些「加號」圖標用於切換子菜單。我只想在子菜單存在的情況下顯示加號圖標。僅當存在子菜單時才顯示圖標
我已經使用此代碼試了一下:
if($('.tablet-li-item').find('.tablet-sub-menu').length !== 0) {
$(this).children('.open-btn').css('display', 'block');
}
HTML:
<ul class="tablet-nav">
{% for menuItem in menu.menuStructure %}
<li class="tablet-li-item">
{{ render(controller("ez_content:viewLocation", {"locationId": menuItem.location.id, "viewType": "menu"})) }}
<i class="fa fa-caret-down open-btn" aria-hidden="true"></i>
<div class="arrow"></div>
{% if menuItem.submenu|length > 0 %}
<ul class="tablet-sub-menu" hidden>
<div class="inner-tablet-sub-menu">
{% for submenu in menuItem.submenu %}
<li class="tablet-sub-li-item">
{{ render(controller("ez_content:viewLocation", {"locationId": submenu.location.id, "viewType": "menu"})) }}
</li>
{% endfor %}
</div>
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
如果我將鼠標懸停/單擊對象本解決方案僅適用,不幸的是這個解決方案是不正確的在這種情況下, ,因爲它是一個平板電腦菜單。
也許有人可以幫我解決這個問題。
編輯:
現在我知道了,我嘗試過用jQuery函數has()
和addClass()
$('.tablet-li-item').has('ul').children('.open-btn').addClass('active');
,而不是addClass()
,show()
也將是一個可能的解決方案。
什麼是$(本)的範圍。我們需要更多的代碼來幫助你。請粘貼您的HTML設置。 –
我添加了html – Valcone
謝謝。但是編輯中仍然沒有$(this)的範圍。您的if語句不會將jQuery放在範圍內,這指向任何內容。 –