javascript - 带有 Vue.js 的 jQuery - $(this) 在方法中不起作用
问题描述
首先,我知道将 jQuery 与 Vue 混合不是一个好主意。但是,我仍然尝试在单击后对元素执行某些操作但$(this)
不起作用。
methods: {
openSMS() {
$(this).hide(); // <-- not working here..
// More code...
},
addEventListeners() {
$(document).ready(function() {
$(".ml-inbox-msg-item").click(function() {
// $(this).hide() <-- it works here
InboxSidebar.openSMS();
});
});
}
}
一个页面上有很多.ml-inbox-msg-item
元素。
如果我把它放在函数$(this).hide()
里面,.click
那么它就可以工作。有没有办法将它传递给openSMS()
函数?
解决方案
这是因为范围openSMS()
与click
处理函数不同。假设您可以更改方法签名,请修改openSMS()
以接受元素引用作为参数:
methods: {
openSMS(el) {
$(el).hide();
},
addEventListeners() {
$(document).ready(function() {
$(".ml-inbox-msg-item").click(function() {
InboxSidebar.openSMS(this);
});
});
}
}
推荐阅读
- java - 通过 supper() 关键字调用 Java 构造函数会导致冲突结果
- c# - 尝试通过 ASP.NET 中的命令文本在 SQL Server 2014 中插入“Rahul's Sister”时出错
- php - 平面 BOM 结构到分层,检测树/图中的循环
- reactjs - 如何在 ReactJS 中将 props 传递给 const 中描述的组件
- c# - 在 ASP.NET C# 中部分记录到 IIS 上的文件系统
- java - Java - 从方法的参数中获取数组位置
- javascript - 通过带有回调的 3rd 方函数传递参数
- youtube-data-api - 由于申请表错误无法增加配额
- json - 如何从 angular4-Ngrx-lodash 中的嵌套 Json 对象中获取数据
- python-3.x - python中不同区域宽度不同的加权移动平均线