> For the complete documentation index, see [llms.txt](https://docs.beae.dev/beae-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.beae.dev/beae-docs/developer/create-element/use-javascript.md).

# Use javascript

Use javascript callback for element, it is used in cases: init slider, active a tab, click to add to cart...etc...

### Register javascript via a computed

It required a core mixin "Javascript" and return as a **`function() { ... }`**

{% code title="Element.vue" %}

```bash
<template>
    <div ref="wrapper">
        <h1>Hello Beae!</h1>
    </div>
</template>

<script>
    import { Javascript } from '@/components/RightSide/Builder/Helpers/Core.js';
    export default {
        
        name: 'ElementName',
        mixins: [ Javascript ],
        props: {
            'data': {
                type: Object,
                default () {
                    return {};
                }
            }
        },

        computed: {
             javascript () {
                return function() {
                    
                    // this.$el   <-- return html root of element
                    // this.$refs <-- return all refs
                    // this.abc   <-- return data.settings.abc 
                    
                    this.$el.querySelector('h1').addEventListener('click', () => {
                        alert('click me!');
                    });
                    
                };
            },
        }
        
    }
</script>
```

{% endcode %}
