【发布时间】:2018-01-31 20:30:09
【问题描述】:
我正在 vue.js 中制作一个简单的 SPA 应用程序,并且我使用了一些 jQuery 方法。问题是,我不能在 jQuery 语句中使用 vue 的方法。例如:我实现了用于自动完成输入字段的 easyAutocomplete 包,需要 4 个事件:
- v-on:click="addReceiver"(on button 'add') - 完成
- v-on:enter="addReceiver"(在输入字段上)- 完成
- 点击列表项 - 完成
- 进入列表项 - 完成
现在我的代码(没有不必要的东西)看起来像这样:
export default {
data() {
return {
contacts: [],
receivers: []
}
},
mounted() {
this.fetchMessages();
},
methods: {
fetchMessages() {
axios.get('api/messages').then(response => {
this.contacts = response.data.contacts;
var options = {
data: this.contacts,
getValue: "name",
list: {
match: {
enabled: true
},
onClickEvent: function() {
var name = $("#to").getSelectedItemData().name;
$("#list_of_receivers").append("<tr><td>"+name+"</td></tr>");
//this.receivers.push(name); CANT DO THAT ALSO!!!
},
onKeyEnterEvent: function() {
var name = $("#to").getSelectedItemData().name;
$("#list_of_receivers").append("<tr><td>"+name+"</td></tr>");
}
}
};
$("#to").easyAutocomplete(options);
});
},
addReceiver(){
var name = $("#to").val();
$("#list_of_receivers").append("<tr><td>"+name+"</td></tr>");
}
}
}
如您所见,我需要在很多地方复制我的代码,因为我不能在里面使用函数addReceiver(),例如onClickEvent: jquery list 函数。
感谢您的帮助!
【问题讨论】:
-
您应该能够在导出之外(在此代码开始之前)创建一个具有
addReceiver内容的命名函数,并使用此引用来声明您的其他函数,例如onClickEvent: yourNamedFunction,和addReceiver(){ yourNamedFunction(); }。$之类的对象的引用可以在里面,只要在函数调用的时候定义就可以了
标签: jquery laravel function events vue.js