也許這是一個非常愚蠢的問題,但我無法弄清楚。是否可以使用標準HTML按鈕發出事件?
基本上所有我想要做的是觸摸屏幕時發出一個事件(使用我們訂購的谷歌紙板模型上的物理按鈕)。無法弄清楚如何進行'全屏觸摸',所以我在a場景之外製作了一個按鈕元素。這是絕對定位在按鈕點擊屏幕,點擊控制檯日誌(通過鼠標) - 所以我知道該按鈕的作品。但是,試圖發出一個事件或setAttribute什麼也不做。
有什麼我做錯了,還是有一些其他的方法完全更適合?
下面的代碼:
<body>
<button id="nav-btn" class="btn btn-primary">Menu</button>
<a-scene id="scene">
和:
AFRAME.registerComponent('nav', {
schema: {},
init: function() {
var navBtn = document.querySelector('#nav-btn');
var btnEls = document.querySelectorAll('.link');
navBtn.addEventListener('click', function() {
console.log('clicked');
for (var i = 0; i < btnEls.length; i++) {
console.log(btnEls[i]);
btnEls[i].emit('menuFade');
}
});
},
});
使用一個實體作爲順便說一下按鈕時,此工作,但我也不能找出如何使那作爲一個物理按鈕!?
感謝您的任何幫助或建議!
@AaronTomlinson謝謝!這很方便知道(和簡單.. omg,不能相信我不得不問) - 但不能幫助排除不幸:/ – Harry
爲getAttribute()工作,你不應該瞄準那個元素。我確定你的控制檯日誌會返回'undefined',如果有的話......似乎在它前面缺少'btnEls [i] .'。這是第一個突出我的源代碼,也是'btnEls [i] .emit('menuFade');'因爲'btnEls'不過是一個節點列表? – NewToJS
@NewToJS哎呀,對不起,我應該讀通過我發佈的更好一點。我的代碼是一個混亂的不同嘗試得到這個工作......這個'getAttribute'是我嘗試的其他東西剩下的剩餘部分,我之前用[i]試過,但是同樣的處理:/ – Harry