【问题标题】:I can't call the function in prototype .js. Where am I making a mistake?我无法在原型 .js 中调用该函数。我在哪里犯错了?
【发布时间】:2011-02-02 10:34:53
【问题描述】:

代码:

DeCheBX = $('MyDiv').insert(new Element('input', { 'type': 'checkbox', 'id': "Img" + obj[i].Nam, 'value': obj[i].IM, 'onClick': SayHi(id)           }));
                            document.body.appendChild(DeCheBX);
                            DeImg = $('MyDiv').insert(new Element('img', { 'id': "Imgx" + obj[i].Nam, 'src': obj[i].IM }));
                            document.body.appendChild(DeImg);
                        }
                        SayHi = function(x) {
                            try {

                            if($('x').checked == true)
                            {
                                alert("press" + x);
                            }

                    }
                    catch (e) {
                        alert("error");
                    }

                };

【问题讨论】:

  • 格式化并注释您的代码,以便我们知道它应该做什么。
  • 我想像当我点击复选框时那样调用它应该调用函数 obj 是我在其中调用的 json 字符串。x 将是我点击的复选框 id 的值。DecheckBx跨度>

标签: javascript javascript-framework


【解决方案1】:

1:您应该使用var 关键字声明变量DeCheBXDeImgSayHi
2:在示例中,不清楚obj[i] 来自何处以及它是什么。错误可能源于它不是您所希望的。
3:您绝对不想调用函数SayHi 并将其返回值(未定义)分配给您构造并插入'MyDiv'Element 的onclick 处理程序。你做事的方式,最好是像"SayHi(this);"这样的字符串。
4:document.body.appendChild(DeImg);后面多了一个}。它使您的示例代码的这一部分无效。
5:在函数SayHi 中,您查看id 为“x”的元素的checked 属性。在我看来,您更愿意使用传递给函数的 x 的值(参见上面的 3)。

【讨论】:

  • 我想像当我点击复选框时调用它应该调用与之相关的函数
  • obj 是我在其中调用的 json 字符串。x 将是我单击的复选框 id 的值。DecheckBx。
猜你喜欢
  • 2021-01-22
  • 2019-09-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2019-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多