что состоит в том, чтобы определить правильный путь, имеет ли объект один класс ИЛИ другой? Следующее является appearantly неправильно..
if ($('#menu-item-49').hasClass('current-menu-item' || 'current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
Спасибо!
Вы могли бы использовать вместо
?
if ($('#menu-item-49').is('.current-menu-item, .current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
Проверить текущий согласованный набор элементы против селектора и возвращаются истина, если хотя бы один из этих элементов соответствует селектору.
Beats вынуждены использовать несколько запросов hasClass
, что является альтернативой:
if ($('#menu-item-49').hasClass('current-menu-item') ||
$('#menu-item-49').hasClass('current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
Вы также можете использовать .is ()
для проверки любого класса, начинающегося с current-menu-
, используя:
if ( $('#menu-item-49').is('[class]^="current-menu-"') ) {
//49 is the current menu!
}
Дополнительные селекторы атрибутов, такие как ^ =
можно найти здесь .
Итак, близко!
Попробуйте:
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
Ниже приведено то, что вы задумали:
var menuItem49 = $('#menu-item-49');
if (menuItem49.hasClass('current-menu-item') || menuItem49.hasClass('current-menu-parent')) {
// ...
}
Вместо этого сделайте вот так, разделив его на два бита:
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ){
$('ul.sub-menu ').css('display', 'block');
}
Надеюсь, это вам поможет
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
Вы пробовали следующее?
Вы не можете использовать оператор ||
(или) в hasClass
. Попробуйте следующее:
if ($('#menu-item-49').hasClass('current-menu-item') ||
$('#menu-item-49').hasClass('current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
Или вы можете сделать это, если это слишком многословно:
var $menuItem = $('#menu-item-49');
if ($menuItem.hasClass('current-menu-item') ||
$menuItem.hasClass('current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
Или даже лучше:
var $menuItem = $('#menu-item-49');
if ($menuItem.is('.current-menu-item, .current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}