我在wordpress上有一個表格,每行有一個按鈕,當您點擊它時會創建一個小表格(on this page)。 它工作得很好,除非您將瀏覽器的寬度更改爲< 768px,則不會有任何反應。addEventListener()不能在小屏幕上工作
這是我的主要電話:
var buttons = [];
if (jQuery(window).width() > 768)
buttons = document.querySelectorAll('td button');
else
buttons = document.querySelectorAll('div button');
/*
Add a click event to all buttons inside the table
*/
for (var i = 0; i < buttons.length; i++) {
buttons[i].addEventListener('click', clickCheck);
}
在小屏幕上,表元素成爲div的,所以我必須以不同的方式定義buttons
陣列。
現在,這是clickCheck()
功能:
function clickCheck(e) {
console.log('ok');
// if first click on the button
if (e.target.textContent === 'Inscription') {
// Cleaning an eventual earlier click on another button
for (var j = 0; j < buttons.length; j++) {
if (buttons[j].textContent === 'Fermer') {
buttons[j].parentNode.removeChild(buttons[j].parentNode.firstChild);
buttons[j].textContent = 'Inscription';
}
}
// Popping the form
formPop(e);
e.target.textContent = 'Fermer';
}
// if form submission
else {
// Depopping the form
formDepop(e);
e.target.textContent = 'Inscription';
}
}
在屏幕上比768px小,「OK」是不是在控制檯中出現,因此事件不被讀取。我已經檢查過了,即使在小屏幕上我的buttons
陣列也沒問題,所以問題必須來自addEventListener()
。
任何線索? :)
我懷疑我們能夠在沒有看到您的HTML並能夠自行播放窗口寬度的情況下看到發生了什麼。可能你有一個佈局或選擇器問題,這兩個問題都需要看HTML來理解。 – jfriend00
你可以按照我的文章中的鏈接,你將會看到帶有表格的頁面,並且你將能夠看到HTML並用窗口寬度來播放:) – yurden