我在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