$('.submenu' || '#categorymenu_100000')
似乎只适用于.submenu
:
$(document).ready(function () {
$('li a').on("mouseenter", function () {
if ($(this).attr('href') == "/Pages/Men") {
$('#categorymenu_100000 .submenu').show();
}
});
$('.submenu' || '#categorymenu_100000').on("mouseleave", function () {
$('.submenu').hide();
});
答案 0 :(得分:1)
如果你想在两个对象上都有事件处理程序,那么你应该使用它:
$('.submenu, #categorymenu_100000').on(...)
逗号分隔CSS选择器字符串中的多个选择器。
您的OR运营商没有按您的想法行事。这样:
$('.submenu' || '#categorymenu_100000').on(...)
与此相同:
$('.submenu').on(...)
因为string || anotherstring
始终会返回它遇到的第一个truthy值,这是表达式中的第一个字符串。换句话说:
'.submenu' || '#categorymenu_100000' === '.submenu'
答案 1 :(得分:1)
'.submenu' || '#categorymenu_100000'
是一个导致'.submenu'
的JavaScript表达式,因为'.submenu'
是一个真值 - 它是一个字符串,它不是空的。 ||
选择其操作数的第一个真值。
如果要选择与这些选择器匹配的元素,则需要使用CSS分隔符:,
。 jQuery适用于CSS选择器而不是JavaScript表达式(它不是魔术)。
$('.submenu, #categorymenu_100000').on('mouseleave', …);