In Angular JS, you can seamlessly apply the addClass function to another element by simply hovering over one

Trying to achieve the desired outcome using jQuery but facing issues in an Angular environment. It seems that I might be working outside of the Angular JS scope, and being new to Angular, I'm unsure how to implement this using Angular's scope methods. Any suggestions?

     
$('.song-thumb .hover-play').on('mouseenter', function(e) {
var elem = $('section.suggestedAlbums img');
elem.trigger(e.type);
elem.addClass('hoverclass');
});

$('.song-thumb .hover-play').on('mouseleave', function(e) {
var elem = $('section.suggestedAlbums img');
elem.trigger(e.type);
elem.removeClass('hoverclass');
});
var count = 0;

$('section.suggestedAlbums img').hover(function() {
count++;
$('[remove]').html('<label remove><br>It triggers the hover event(' + count + ') too.<br></label>');
});

Full page code:

<script>
$('.song-thumb .hover-play').on('mouseenter', function(e) {
var elem = $('section.suggestedAlbums img');
elem.trigger(e.type);
elem.addClass('hoverclass');
});

$('.song-thumb .hover-play').on('mouseleave', function(e) {
var elem = $('section.suggestedAlbums img');
elem.trigger(e.type);
elem.removeClass('hoverclass');
});
var count = 0;

$('section.suggestedAlbums img').hover(function() {
count++;
$('[remove]').html('<label remove><br>It triggers the hover event(' + count + ') too.<br></label>');
});
</script>

<div ng-repeat="track in trackListData.tracks track by $index " class="feature-item-homepage fade-animate-nostagger">
 
...remaining HTML code goes here...

</div>

Answer №1

To start, include a controller within a parent div:

<div ng-controller='MyController'>

Next, add ngMouseleave and ngMouseenter to the .song-thumb .hover-play element:

<div class="hover-play" ng-if="$root.currentPlaying.song_id != track.id" ng-click="$root.playSong(track);" ng-mouseenter='state.hoverPlay=true;' ng-mouseleave='state.hoverPlay=false'>

Create the controller:

angular.controller('MyController', [ '$scope', function ($scope) {
    $scope.state = {
        hoverPlay: false
    };
}]);

Finally, utilize ngClass to toggle the class on/off:

<img ng-class="{ 'hoverclass': state.hoverPlay }" . . . >  

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

JavaScript - Load once

I have an issue with my JavaScript code where it loads data multiple times in a loop, causing long wait times. I need to figure out how to load the data only once. After researching the problem, I found some code that may help but I'm not sure how to ...

Repeating audio playback in HTML5 with a pause option

I need to set up a loop with a 10-minute delay. Once the loop starts and finishes, there should be another 10-minute delay before it automatically restarts again. $audio_code = '<div style="display: none;">' . '<audio id="war_sound ...

The JavaScript code is not functioning properly on the server after the ajax request

I have a situation where an ajax request is sending data to a PHP file, and then the PHP file is generating HTML content with some JavaScript code. The JavaScript code includes Google's chart library, but unfortunately the chart is not working as inte ...

Transferring JSON data using AJAX

I am having trouble sending JSON via AJAX using pure JavaScript. While I can successfully retrieve values back from PHP, I am struggling to retrieve a specific JSON array. var mname = ["john", "mary", "eva"]; var fname = 678; clicked_keyword_test = {"last ...

"Enhancing functionality with X-Editable in conjunction with the powerful Bootstrap

After successfully implementing inline editing with X-Editable and Bootstrap 3, I have encountered an issue when trying to make it work with Bootstrap 4. You can view the JsFiddle here. If I create a simple popup like the following: <div style="margin ...

Understanding the concept of event bubbling through the use of querySelector

I am currently working on implementing an event listener that filters out specific clicks within a container. For instance, in the code snippet below I am filtering out clicks on elements with the class UL.head. <div> <ul class="head"> < ...

I am looking to incorporate a child row for each tr element within AngularJS

Here is the code snippet I have: <td class="name"> <i class="mdi mdi-plus s16" ng-click="childRowToggle($event)"></i> <div ng-click="details(assets.code)">{{assets.name}}</div> <span class="seco ...

It appears that the NodeJs Express 4 async function in the model is returning before completion

I'm currently working on organizing my project by splitting the logic into different folders such as routes, views, models, and controllers. Within a model named data (models/datamodel.js), I have implemented two methods to retrieve data for populati ...

Navigating with useRouter().push() from the "next/navigation" package is not functioning as expected when used on a customized signIn page alongside next-auth

Upon logging in successfully on my custom signIn-Page using next-auth, I am facing an issue with redirecting back to the callbackUrl. The setup includes react 18.2.0, next 13.4.8-canary.2, and next-auth 4.22.1. The code for the signIn-Page (\src&bsol ...

Fundamentals of Angular 2

It's not just an inconvenience, but something that truly frustrates me. Could someone please clarify the following: Why does Angular load these scripts in HTML directly from node_modules https://i.sstatic.net/D8UrG.png Why am I unable to simply imp ...

A guide on importing SVG files into Next.js

I'm in the process of transitioning my React website to Next.js. Currently, I have an assets folder at the root that houses numerous SVGs, along with a constants.js file where I import all the SVGs as ReactComponents. I am seeking guidance on how to a ...

Incorporate additional libraries like jQuery into your Vue.js application

I am facing an issue with connecting a third-party js library to a vue.js component main.js ... require('jquery') import Vue from 'vue' import VueMdl from 'vue-mdl' import App from './App' import Auth from './ ...

Manipulating the visibility and opacity of a div element using CSS

Here is the code snippet I am working with: <div class="contact-item" onmouseover="div_ContactItem_mouseover(this)"> </div> <div id="div_ItemOver" style="display: none;" class="contact-item-hover" onmouseout="div_ItemOver_mouseout ...

Troubleshooting base href issues in AngularJS routing

For a demonstration, I decided to try out this plunker from a tutorial that showcases tab routing across different pages. After downloading the entire zip file and running it as is (e.g. with all files in the same directory and utilizing CDN links), I enco ...

Check to see if two sets of coordinates fall within the specified radius

I'm currently working on analyzing the collision data for major intersections in my city by aggregating it with the location information. My main goal is to determine the number of accidents that occurred within a 20-meter radius of each intersection. ...

What steps do I need to take to successfully integrate Font Awesome 5 with React?

Here is an interesting scenario: the initial icon is displayed, but it fails to update when the class changes. const Circle = ({ filled, onClick }) => { const className = filled ? 'fas fa-circle' : 'far fa-circle'; return ( ...

Encountering issues with accessing image files located in the public folder of my Next.js project - Receiving a 404 Error message

I am currently facing an issue with my Next.js project where I am unable to use image files from the public folder. Despite checking that the file paths, names, and extensions are correct, as well as ensuring my configurations are accurate, I keep encounte ...

The designation is being acknowledged as a <div>

I am facing an issue with a div structure that contains a label and 4 child divs. My goal is to apply CSS and jQuery effects to only the child divs, excluding the label. To achieve this, I implemented the following code: HTML: <div class="score row-fl ...

AngularJS - Concealment filter for repetition items

I'm currently working on creating a small filter to conceal certain elements from my repeater. Imagine that my scope looks like this: $scope.test = [ {id: 1,name: "Test number 1"}, {id: 2,name: "Test number 2"}, {id: 3,name: "Test number ...

Creating a background with image overlays in React: A step-by-step guide

My challenge is to have an image that covers the entire background but it seems to stop abruptly where another object is placed, unable to extend further. I am utilizing Material UI and here is a snippet of my code: import { Image } from "../images&q ...