我只是在点击的菜单链接有子菜单时尝试运行一些javascript(toggleClass)。这可能吗?在此先感谢您的帮助。
$('#nav a').click(function () {
if (???) {
$(this).toggleClass('sf-js-enabled');
}
});
答案 0 :(得分:1)
$('#nav a').click(function () {
// Proceed only if children with your submenu class are present
if ($(this).find('.submenuClass').length > 0) {
$(this).toggleClass('sf-js-enabled');
}
})
答案 1 :(得分:1)
使用has
选择器:
$('#nav a:has(.submenu)').click(function () {
$(this).toggleClass('sf-js-enabled');
});
这样jQuery只会遍历DOM一次,而不是像每次点击一样遍历每次点击。
has
docs:
描述:选择包含至少一个与指定选择器匹配的元素的元素。
答案 2 :(得分:0)
试试这个。
$('#nav a').click(function () {
if ($(this).find('submenuSelector').length) {
$(this).toggleClass('sf-js-enabled');
}
})
或者,您可以使用has(selector)
方法将匹配元素集减少到具有与选择器或DOM元素匹配的后代的元素。
$('#nav a').click(function () {
//Do other suff here
if ($(this).has('submenuSelector').length) {
$(this).toggleClass('sf-js-enabled');
}
})