я не могу вызвать функцию в прототипе .js? где я делаю ошибку в моей помощи кода - PullRequest
0 голосов
/ 30 марта 2010

Код:

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 Ответ

1 голос
/ 30 марта 2010

1: Вы должны объявить свои переменные DeCheBX, DeImg и SayHi с ключевым словом var.
2: в примере неясно, откуда взято obj[i] и что это такое. Ошибки могут быть связаны с тем, что это не то, что вы надеетесь.
3: Вы наверняка не хотите вызывать функцию SayHi и присваивать ее возвращаемое значение (не определено) обработчику onclick созданного вами Element и вставлять его в 'MyDiv'. То, как вы делаете вещи, лучше бы строка как "SayHi(this);".
4: после document.body.appendChild(DeImg); появляется дополнительный }. Это делает эту часть вашего примера кода недействительной.
5: В функции SayHi вы смотрите на свойство checked элемента с идентификатором 'x'. Мне кажется, что вы бы предпочли использовать значение x , переданное функции (см. 3 выше).

...