Vue.js świetnie współpracuje z wydarzeniami przeglądarkowymi, takimi jak click
lub mousedown
. Ale nie działa w ogóle z niestandardowymi zdarzeniami. Oto kod:Słuchaj niestandardowych wydarzeń w Vue.js
HTML:
<div id="app" style="display: none" v-show="true">
<div v-el:ping v-on:ping="ping">
<div>
<button v-on:click="click">Click</button>
</div>
</div>
</div>
JavaScript:
new Vue({
el: '#app',
data: {
},
methods: {
ping: function (event) {
console.log('Vue ping', event);
alert('Vue ping');
},
click: function (event) {
jQuery(event.target).trigger('ping');
}
},
ready: function() {
console.log(this.$els);
jQuery(this.$els.ping).on('ping', function (event) {
console.log('jQuery ping', event);
alert('jQuery ping');
});
}
});
Spodziewam alert z Vue ping
i jQuery ping
. Ale tylko później wyskakuje.
gdzie jest problem z kodem? – Gintoki
@John '' ping'' (gdzie '' alert ('Vue ping') '') nie jest wywoływany – vbarbarosh