我的 .click() 函数有问题。 我想在页面加载时激活复选框(使用 JavaScript),并且该复选框将激活一些产品排序功能。问题是“.click()”函数仅标记复选框(不调用函数),但是当我单击该复选框时一切正常。
var globalID = getQueryVariable("id");
console.log(globalID);
var classname = document.getElementsByClassName("jet-checkboxes-list__input");
for (var i = 0; i < classname.length; i++) {
if(classname[i].value == globalID) {
classname[i].click(); // <=======================================================!!!!!!!
break;
}
}
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
最佳答案
好的,我找到了解决方案。
这个函数和计时器 setTimeout(function(){ eventFire(classname[i], 'click'); }, 500);
function eventFire(el, etype){
if (el.fireEvent) {
el.fireEvent('on' + etype);
} else {
var evObj = document.createEvent('MouseEvents');
evObj.initEvent(etype, true, false);
var canceled = !el.dispatchEvent(evObj);
if (canceled) {
// A handler called preventDefault.
console.log("automatic click canceled");
} else {
// None of the handlers called preventDefault.
}
}
}
关于javascript - 用js点击复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59074848/