2016-12-16 2 views
1

Есть ли способ добавить события vue.js к существующим элементам html?Как добавить событие vue.js в существующий элемент html

HTML элементы:

<div class"borrow-button">Borrow</div> 
<div class"borrow-button">Borrow</div> 
<div class"borrow-button">Borrow</div> 

Могу ли я каким-то образом добавить vue.js событие этой дивы?

$('.borrow-button').each(function(i, obj) { 
    //how to append for example onclick event to this divs? (onclick="borrow") 
}); 
+0

Вы можете понять, что вы пытаетесь достичь? – Saurabh

+0

@saurabh Im, используя jsgrid для генерации таблицы с данными, поэтому элементы html уже созданы. Когда я создаю в jsgrid div с событием vue.js, он не работает, поэтому моя идея заключалась в том, чтобы добавить событие к этим созданным div. –

+0

Вы не можете добавлять vue-события в HTML vue не компилируется. Вы можете добавить обычные js-события с jquery или plain js – vbranden

ответ

0

VueJS не предоставляет вам эту возможность, так как цель отличается.

Вам нужно будет использовать Vanilla JS внутри Vue.

1

Если вю экземпляр называется VM вы можете использовать метод внутри него огонь событие, как этот

// Vue Instance 
var vm = new Vue({ 
    methods: { 
     handleButton: function(i, obj) { 
     //Do whatever you want 
     } 
    } 
}) 

$('.borrow-button').each(function(i, obj) { 
    vm.handleButton(i, obj) 
}); 
2

Я в настоящее время не известно ни вю способ сделать это. Но поскольку jsgrid использует jquery, вы можете использовать event handler attachment, чтобы связать методы vue.

Вот exmple:

var demo = new Vue({ 
    el: '#demo', 
    data: function(){ 
     return { 
     }; 
    }, 
    methods:{ 
     myMethod() { 
     alert('Do whatever you wanns do') 
     } 
    }, 
    mounted() { 
     $("#myBtn").on('click', this.myMethod); 
    } 
}) 

Вы можете проверить этот код работает here.

Смежные вопросы