Существует ли способ колебаться элемент с помощью JavaScript? Я не хочу создавать другой класс, я просто хочу заставить элемент колебаться с JavaScript, когда мой указатель мыши не по тому элементу.
Например, у меня есть 5 элементов с тем же классом, и я хочу назвать парение на всех них, когда один из них на самом деле колеблется.
Я предполагаю, что вы имеете в виду псевдо-класс :hover
, который вы ассоциировали со ссылкой (например). При наведении курсора на эту ссылку вы хотите вызвать все остальные стили ссылки :hover
.
К сожалению, вы не можете вызвать стили :hover
из jQuery, для этого необходимо навести указатель мыши на этот элемент. Вы должны использовать классы и использовать событие наведения jQuery.
Этого можно добиться, обратившись одновременно ко всем элементам вашей коллекции в обработчиках событий hover
var items = $(".some-class-applied-to-many-different-items");
items.hover(function() {
// Mouseover state
items.addClass("blah"); // <- for example
},
function() {
// Mouseout state
items.removeClass("blah");
});
Если я правильно понял ваш вопрос, вы добавили событие hover
с помощью jQuery, и вы хотели бы вызвать это событие вручную независимо от мыши.
Если я правильно понял, Вы хотите вызвать mouseenter
, чтобы вызвать событие mouseenter
.
Если я понял неправильно, и у вас действительно есть CSS-правило :hover
, которое вы хотите вызвать с помощью Javascript, это невозможно.
Вместо этого, вы должны добавить имя класса в правило (например, something:hover, something.FakeHover { ... }
), и добавить это имя класса с помощью jQuery. (eg, $(...).addClass('FakeHover')
).
В jQuery, функция trigger
позволяет инициировать события (включая mouseover
, я полагаю) на элементах.
В прямом JavaScript, если Вы назначили функцию обработчику события элемента, Вы, конечно, можете вызывать ее когда угодно. Например,
function mouseoverHandler() {
// Do something
}
// Assign function to element’s event handler
document.getElementById('link1').onmouseover = mouseoverHandler
// Call that function
document.getElementById('link1').onmouseover();