| BG Development · За реклама · За контакти |
Помощ Търсене Потребители Календар Правила |
| Здравей! ( Включване | Регистриране ) |
![]() ![]() ![]() |
| doubleexcell |
Публикувано на: 26-08-2008, 15:18
|
||||||||||||||||
|
Име: Група: Потребител Ранг: Редовен член Мнения: 495 Регистриран на: 09.08.05 |
Така... това е member function на един клас. Класът ще се изпозлва за показване на категории в йерархичен вид. До всяка категорийка ще има и един чекбокс, за да се маркира дадената категория. Логиката за маркиране е малко по-сложна, затова тя е изведена във функция на същия този обект. Горната функция приема като параметър обект от тип self (т.е. същият обект). Целта ми е, когато се кликне върху чекбокса, да се извика .select() метода на съответния node, който е генерирал чекбокса. Нещо не ми връзва, обаче. Този ред:
го пробвах също и така
и така
и така
и така
и така
и така
и е.а ли му майката как още, но все не връзва. Нищо не се извиква, Firebug не показва никакви грешки За първи път в живота си пиша обекти на JavaScript, затова моля да ме извините за тъпия въпрос, но наистина забих Как да го подкарам да работи това нещо? Това мнение е било редактирано от doubleexcell на 26-08-2008, 15:26 -------------------- |
||||||||||||||||
| TNT |
Публикувано на: 26-08-2008, 21:47
|
![]() Име: Група: Изгонен Ранг: Почетен член Мнения: 1870 Регистриран на: 06.01.08 |
select() е запазена дума за метод на друг обект който се потдържа от JS.
опитаи да си дефинираш метод с подобно име например _select() |
| doubleexcell |
Публикувано на: 27-08-2008, 00:13
|
|
Име: Група: Потребител Ранг: Редовен член Мнения: 495 Регистриран на: 09.08.05 |
Не стана
checkbox bug Мисля, че някъде в "OOP-то" ми омазвам някакви поинтери, но не знам защо -------------------- |
| doubleexcell |
Публикувано на: 27-08-2008, 01:09
|
|
Име: Група: Потребител Ранг: Редовен член Мнения: 495 Регистриран на: 09.08.05 |
мисля, че решението е в binding, но не мога да го нацеля точно
-------------------- |
| Nick |
Публикувано на: 27-08-2008, 09:48
|
||||||||
![]() Име: Никола Павлов Група: Администратор Ранг: Почетен член Мнения: 2082 Регистриран на: 30.01.04 |
Батка, innerHTML ти бърка нещата. Тъпо, а
това го замени с:
а това ако държиш на него го направи:
-------------------- |
||||||||
| doubleexcell |
Публикувано на: 27-08-2008, 11:31
|
||
|
Име: Група: Потребител Ранг: Редовен член Мнения: 495 Регистриран на: 09.08.05 |
Тъкмо се справих, майна. Другаде беше проблема. Тия add(), append() и т.н. си губеха binding-a и се омазваха атрибутите навсякъде. Затова започнах отначало from scratch с Prototype.js и направих на всяка такава динамична функция по един експлицитен bind и всичко заспа. Проблемът се изразявал в това, че в JavaScript всичко е local scope и като викаш local func from local func когато се изпълни външната функция, тя си pop-ва стака после и се губят references към обектите. Тогава this става window и всичко се закача на него. По този начин нещата така се омазват, че самия език не разбира, че е в грешка Ей така сработи
същото нещо рекурсивно назад за add(), append() etc. и нямаше сбозване на references Това мнение е било редактирано от doubleexcell на 27-08-2008, 11:33 -------------------- |
||
| doubleexcell |
Публикувано на: 27-08-2008, 12:10
|
|
Име: Група: Потребител Ранг: Редовен член Мнения: 495 Регистриран на: 09.08.05 |
и ти си бил доста прав, обаче
-------------------- |
| nullman |
Публикувано на: 19-10-2008, 21:43
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 42 Регистриран на: 29.11.04 |
InnerHtml е доста по тромав. Втория вариант е много по елегантен
-------------------- |
![]() |
![]() ![]() ![]() |