What could be causing the addEventListener function to fail to execute?

I am currently utilizing the Vue.js framework and attempting to create a demo. I'm puzzled as to why the addEventListener function is not running in my code.

This specific issue pertains to a web browser:

 _initEvents(el, attr, callback) {
    this.$el.querySelectorAll(el).forEach(item => {
        if (item.hasAttribute(attr)) {
            callback(item, item.getAttribute(attr))
        }
    })
}
_compile() {
    this._initEvents('*', '@click', (item, key) => {
        console.log(item)
        item.addEventListener('click', ()=> {
            console.log('yes')
        }, false);
    })
}

As observed when I console.log(item), the browser console displays

<button @click="test">yes</button>
. Hence, the function does indeed exist, and the button element is present within the DOM.

The perplexing aspect remains: Why is item.addEventListener failing to execute and display 'yes'?

Answer №1

Following the Vue render process, the '@click' attribute will no longer be present in the DOM. Consider using a different attribute.

<button @click="test" new:click >yes</button>  

this._initEvents('*', 'new:click', (item, key) => {
    console.log(item)
    item.addEventListener('click', ()=> {
        console.log('yes')
    }, false);
});

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

My API encountered a 404 error when trying to access the MAILCHIMP API

I am currently working on a project focused on creating a Newsletter for web development led by Angela Yu. In this project, I encountered a 404 error while integrating the API from the MAILCHIMP website. Each time I tried to insert the API, it consistent ...

"Passing an Empty String as Input in a NodeJS Application

app.post('/register',function(req,res){ var user=req.body.username; var pass=req.body.password; var foundUser = new Boolean(false); for(var i=0;i<values.length;i++){ //if((JSON.stringify(values[i].usernames).toLowerCase==JSON. ...

Retrieving information from a Rowdatapacket with expressjs

Is there a way to use a loop to retrieve a single value from each row in RowDataPacket? Currently, my results look like this: [ RowDataPacket { id: 522, number: '111', test: 'testing' }, RowDataPacket { id: 523, number: '112' ...

Using Next.js for dynamic routing with JSON arrays in getStaticPaths

I am currently facing an issue while trying to incorporate a json file with multiple arrays into my Next.js application. The structure of the json file is quite complex, and I'm unsure about how to convert it into a format that can be effectively util ...

How to access scss variable from the <template> section of a VueJS component

Within my VueJS project, I maintain a file named variables.scss that houses specific variables which I typically import using @import within the <style/> section of my components when needed locally. While this method functions as expected, I am curr ...

Guide on how to capture tweets from particular Twitter profiles

I'm currently experimenting with the twitter npm package to stream tweets from specific accounts, but I'm facing some challenges. After reviewing the Twitter API documentation, I must admit that I am a bit perplexed. To fetch details about a pa ...

Utilize Bootstrap4 to position content above the navigation icon

I need assistance to modify my code so that it will have the following appearance: I successfully created a navigation bar icon and inserted the logo, but I am struggling to position the data above the navigation icon: My current code: <nav class="n ...

Using PHP to ascertain the requested dataType or responseType from the client

My ajax request is fairly simple: $.post('server.php',data, function (json) {console.log(json)},'json'); I have configured jQuery to expect json data based on the dataType setting. Question: Is the dataType parameter equivalent to re ...

looking to showcase the highest 'levelNumber' of elements within an array

arr1 = [ { "levelNumber": "2", "name": "abc", }, { "levelNumber": "3", "name": "abc" }, { "levelNumber": "3", "name": &quo ...

Is it possible for Penthouse to retrieve critical CSS while using javascript?

I am currently utilizing the laravel-mix-criticalcss npm package to extract the critical CSS of my website. This package leverages Penthouse under the hood, and you can configure Penthouse settings in your webpack.mix.js within the critical options. The ...

Implement image uploading feature with Ant Design library in a React JS application

I need assistance with a basic application that allows users to upload images. Once the image is uploaded and the user clicks on the get data from upload button, the result should be displayed in the console as console.log("Received values of form: ", valu ...

Unveiling the magic: Dynamically displaying or concealing fields in Angular Reactive forms based on conditions

In my current scenario, there are three types of users: 1. Admin with 3 fields: email, firstname, lastname. 2. Employee with 4 fields: email, firstname, lastname, contact. 3. Front Office with 5 fields: email, firstname, lastname, airline details, vendo ...

What is the best way to implement authentication on a Vue component in Vue.JS 2?

My view blade appears as follows: @if (Auth::user()) <favorite :id="{{ $store->id }}"></favorite> @else <a href="{{url('/login?red='.Request::path())}}" class="btn btn-block btn-success"> <span class="fa f ...

Is it recommended to use Promise.await over async/await?

After starting some new operations in my project, I discovered that db.aggregate needed to be executed asynchronously: db.aggregate( [ { $match: { "records": { $e ...

Is there a way to utilize local resources in case CDNs are unable to load properly?

Encountering an issue with Bootstrap and jQuery loading from CDN, sometimes failing to import from the CDN source. For instance: <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYii ...

In AngularJS expressions, you can compare two dates and use ng-hide based on the comparison

Is it possible to compare two Date strings using Angular JS Expressions? HTML <body ng-controller="app"> <div>{{Today}}</div> <div>{{ItemDate}}</div> <div>{{ItemDate<Today}}</div> </body> ...

Differences between JSX and creating instances of component classes

Could someone please clarify the distinction between the following two statements? let instance1 = new CustomComponent(); and let instance2 = <CustomComponent /> When checking in the Chrome debugger, I see the following: for instance1 CustomComp ...

JavaScript Closures can utilize a shared global setting object or be passed as an argument to individual functions

Looking for advice on the use of a global "settings object" in relation to JavaScript closures. Should I access it from within functions in the global scope or pass the object every time a function requires access? To provide context, here's a mockup ...

Vue.JS - Dynamically Displaying Property Values Based on Other Property and Concatenating with

I have a reusable component in Vue.js called DonutChart. <donut-chart :chartName="graphPrefix + 'PerformanceDay'" /> The value of the property graphPrefix is currently set to site1. It is used as part of the identifier for the div id ...

Transforming sound data into a file format for submission to the backend system (without the need to store it on the

UPDATE: I found a few minor errors in this post, which have been fixed and resolved some of the issues. The other half of the problem is addressed in the accepted answer. ... I am currently capturing microphone audio on the client side (using Nuxt/Vue) a ...