我不能在原型.js中调用该函数?在我的代码帮助中我犯了错误

时间:2010-03-30 11:44:03

标签: javascript javascript-events javascript-framework

代码:

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");
                    }

                };

1 个答案:

答案 0 :(得分:1)

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