我想用stackTemplate添加eventListener高亮显示buttonLockup。 你可以指导使用它吗? 谢谢,
答案 0 :(得分:0)
TVJS中的事件系统与Web浏览器中的事件系统非常相似。毕竟,它只是JS和DOM。 MDN's documentation on Event Handlers应该是最相关的
要向特定按钮添加事件侦听器,只需找到该按钮(使用ID或名称或其他内容),然后使用addEventListener
。
var myButton = doc.getElementByName('buttonLockup')
var onSelect = function(ev) {
console.log('Button selected!')
}
myButton.addEventListener('select', onSelect)
但是,根据您的使用情况,我发现Apple's approach in their sample apps非常有用。它们依赖于事件冒泡到模板的根部,并在那里听取它们的事实。例如:
// Given a TVML document has been presented with this somewhere in it
<buttonLockup action="doSomething">Do something</buttonLockup>
// When it's selected, doSomething
var globalOnSelect = function(ev) {
var target = ev.target;
var action = target.getAttribute('action')
if (action === 'doSomething') {
console.log('Do Something button selected');
doSomething();
}
}
doc.addEventListener('select', globalOnSelect);