Вы можете сделать это, используя jQuery's hover
:
$("selector_for_your_ul li").hover(
function() {
$(this).addClass("selected").siblings("li").removeClass("selected");
},
function() {
$(this).removeClass("selected");
}
);
Живой пример
Это переключит «выбранное»Присвойте классу li
, на котором находится мышь, и если мышь оставит один li
, а не не введет другой, он удалит класс (ни у одного из них не будет "selected"учебный класс).Я думаю это то, что вы сказали, что хотели, хотя это не совпадает с тем, что у одного из них уже есть "выбранный" класс с самого начала.
Если вы просто хотите изменитькогда кто-то наводит мышью на li
, но , а не , удаляйте его, когда мышь оставляет li
, не вводя другого, используйте mouseenter
:
$("selector_for_your_ul li").mouseenter(
function() {
$(this).addClass("selected").siblings("li").removeClass("selected");
}
);
Пример Live
Если вы посмотрите на событие mouseenter
в различных ссылках, они скажут вам, что оно относится к IE.Это правда, но это так полезно, что jQuery эмулирует его в других браузерах.
Обновление : Вы можете изменить siblings("li")
на siblings("li.selected")
в приведенном выше, если хотите, например:
$(this).addClass("selected").siblings("li.selected").removeClass("selected");
Это может сделать его немного более эффективным (не пытаясь удалить класс из того, что уже имеет его). Вот первый пример (с hover
), обновленный для этого; вот второй пример (с mouseenter
), обновленный для этого.
Не по теме : Но в зависимости от того, какой эффект вы хотите, вы можетебыть в состоянии достичь этого с помощью CSS, а не с помощью jQuery и «выбранного» класса.Если вы просто хотите, чтобы li
был выделен, когда мышь фактически находится над ним (пример hover
выше), вместо того, чтобы оставить последний li
выделенным (пример mouseenter
выше), и если вам не нужночтобы поддерживать IE6, вы можете сделать это с помощью псевдокласса CSS :hover
:
selector_for_your_ul li:hover {
color: red; /* ...or whatever... */
}
Живой пример Но опять же, это только если вам нужен эффект наведения, и только если вы не надеваетене нужно поддерживать IE6 (который допускает только :hover
на a
элементах).