Meteor 如何对HTML表格中的右键单击作出响应;单元格“;(td)在流星计划中?
假设: 我有一个加载模板的HTML页面。 模板名称为Meteor 如何对HTML表格中的右键单击作出响应;单元格“;(td)在流星计划中?,meteor,Meteor,假设: 我有一个加载模板的HTML页面。 模板名称为scheduleTable。 模板描述了一个HTMLTable,其中(当然)有各种trs和tds,还有一个使用CSS类“tddetails1” 如果我想用JavaScript响应右键单击“tddetails1”元素,我想我需要在js文件中编写类似这样的代码: Template.scheduleTable.events({ "right-click .tddetails1": function (event) { // do so
scheduleTable
。
模板描述了一个HTMLTable,其中(当然)有各种tr
s和td
s,还有一个使用CSS类“tddetails1”
如果我想用JavaScript响应右键单击“tddetails1”
元素,我想我需要在js文件中编写类似这样的代码:
Template.scheduleTable.events({
"right-click .tddetails1": function (event) {
// do something
});
但我可以使用什么事件?没有“右键单击”事件,我不想捕获“常规”(左键)单击。我是否注定要在每个td
中使用html按钮,并响应他们的点击事件
更新
是的,克里斯蒂安的回答是“当场”;这项工作:
HTML
只需使用
mousedown
事件处理程序并检查event.button==2
:
Template.scheduleTable.events({
“mousedown.tddetails1”:函数(事件){
如果(event.button==2){
//此代码将在右键单击时运行
//做点什么
}
}
});
编辑:
要防止弹出关联菜单,请添加:
"contextmenu .tddetails1": function (event) {
return false;
}
应该注意的是,使用
return false
而不是event.preventDefault()
的意义在于return false
基本上做了三件事:event.preventDefault();event.stopPropagation();返回false
,而使用event.preventDefault()
并返回将不会阻止事件冒泡。
if (Meteor.isClient) {
Template.tblExpenseDescription.events({
"mousedown .rc1": function (event) {
if (event.button == 2) {
console.log('date1 was right-clicked');
}
}
});
}
"contextmenu .tddetails1": function (event) {
return false;
}