gpt4 book ai didi

javascript - 如何获取元素id作为函数参数

转载 作者:行者123 更新时间:2023-11-30 20:47:54 26 4
gpt4 key购买 nike

我正在学习前端开发。我是 javascript 的新手。当我从后端传递一些元素 id 执行 js 时,我遇到了这个问题。它显示一些错误无法读取 null 的属性“addEventListener”。我的 js:

function disableOtherCheckBoxGrpScrolls(elementsContainerId) {
console.error("Elements id from backend: " + elementsContainerId);
var container = document.getElementById(elementsContainerId);
// I am checking here length of elements
console.error("Elements length : " + container.length);
// It displays Elements length : undefined
container.addEventListener('mousewheel', function(e){
if (!$(this).hasScrollBar()) return;
// If container div has a scrollbar it will do nothing

var event = e.originalEvent,
d = event.wheelDelta || -event.detail;

this.scrollTop += (d < 0 ? 1 : -1) * 30;
e.preventDefault();
}, {passive: false});
}

有什么解决办法吗?

我的后端传递元素 id

    if (!isMobile)
JSUtil.execFn("disableOtherCheckBoxGrpScrolls", checkboxGrp.getElementsContainerId());

最佳答案

伙计们,我解决了我的问题:)。但我不太明白这是如何工作的。我的解决方案是:

function disableOtherCheckBoxGrpScrolls(elementsContainerId) {
console.error('containerId: ' + elementsContainerId);
// First is element undefined or Not rendered to DOM my opinion
(function() {
if (typeof elementsContainerId === "undefined") {
throw new Error("elementsContainerId parameter is undefined");
}
var container = document.getElementById(elementsContainerId);
console.error("Elements ID : " + container.length);
container.addEventListener('mousewheel', function(e) {
if (!$(this).hasScrollBar()) return;
// logger.debug('has scroll');

var event = e.originalEvent,
d = event.wheelDelta || -event.detail;

this.scrollTop += (d < 0 ? 1 : -1) * 30;
e.preventDefault();
}, { passive: false });

})();

}

而且我想也许 js 在未加载 html 元素之前工作,这就是我遇到的 null 和 undefined 错误。顺便感谢所有评论和回答:)。

关于javascript - 如何获取元素id作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48496232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com