$.on()是一個Vue.js方法,它可以將事件偵聽器添加到DOM元素。這個方法可以很方便地用于注冊事件,包括click,mouseover,keydown等等,這些事件監聽使得我們的Vue組件變得更加強大。當我們調用$.on()方法時,事件偵聽器會被添加到當前的Vue實例上。
Vue.component('my-component', { template: '<button @click="toggle">Toggle</button>', methods: { toggle: function () { this.$emit('toggle') } }, mounted: function () { $(this.$el).on('keydown', function (e) { if (e.keyCode === 13) { this.toggle() } }.bind(this)) } })
在上面的代碼片段中,我們定義了一個名為my-component的Vue組件,該組件包含一個button元素。當點擊button時,組件會觸發{@}toggle事件。在組件的mounted鉤子中,我們使用$.on()方法將keydown事件添加到button元素上,當用戶按下回車鍵時,toggle方法將被調用。
除了上面的示例代碼,還有許多其他的用法可以使用$.on()方法。例如,在Vue.js中,我們可以使用它來處理自定義事件,或者在使用第三方插件時,我們可以將事件綁定到插件中的DOM元素上。
Vue.directive('my-directive', { bind: function (el, binding) { $(el).on('my-event', function (e) { binding.value(e.target.value) }) }, unbind: function (el) { $(el).off('my-event') } })
在上面的代碼片段中,我們使用Vue指令來演示如何使用$.on()方法處理自定義事件。當綁定到一個帶有my-directive指令的DOM元素時,該元素會偵聽my-event事件。當該事件被觸發時,指令的綁定值將被調用,傳遞事件的target.value作為參數。
總之,$.on()是一個強大的Vue.js方法,它可以幫助我們處理事件監聽器。我們可以將事件綁定到DOM元素上,從而改變組件的行為。我們可以使用它來注冊自定義事件或處理第三方插件中的事件。