gpt4 book ai didi

"id"不存在时的JavaScript onclick事件

转载 作者:行者123 更新时间:2023-11-30 13:33:07 25 4
gpt4 key购买 nike

让我先说我缺乏 JavaScript 技能,至少可以这么说。我一直在使用以下功能时遇到问题:

function setClickHandler(element) {
element.onchange = function () {
var id = this.options[this.selectedIndex].value;
if(document.getElementById(id) !== null){
clickHandler = document.getElementById(id).onclick;
} else {
clickHandler ="runMe('" + this.id + "','" + id + "','','null')"; }
clickHandler.apply(this);
}
}

基本上它所做的是,如果一个元素存在并带有“id”,则使用该元素 onclick 函数,如果它不存在,则在该函数中创建一个。然后将此 onclick 函数应用于该元素。

一切正常,除非“id”不存在并且它进入必须创建 clickHandler 的 else 语句。我不明白为什么这行不通。我确实注意到,当我记录它时,如果 clickHandler 是从另一个现有的 id 中获取的,那么 clickHandler 输出类似 (onclick).event 的东西,如果它去了在 else 语句中输出 runMe('24','54','','null')

我希望我解释得足够好。任何帮助将不胜感激。

最佳答案

您在 else 情况下创建了一个字符串,您不能将其作为函数调用。试试这个

if (document.getElementById(id) !== null) {
clickHandler = document.getElementById(id).onclick;
clickHandler.apply(this);
}
else {
// clickHandler = "runMe('" + this.id + "','" + id + "','','null')";
var runMeArgs = [this.id, id, '', 'null'];
runMe.apply(this, runMeArgs);
}

关于 "id"不存在时的JavaScript onclick事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980840/

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