Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> установка атрибута onclick в IE, установка атрибута onclick в IE 
V
    Опции темы
azam
Дата 12.2.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 8.10.2007
Где: г. Владикавказ

Репутация: нет
Всего: нет



не могу динамически вставить атрибут onclick. т.е. я его вставляю но функция которая должна срабатывать она не вызывается в IE (в других браузерах все отлично)

вычитал что надо не так
1. a.setAttribute('onclick', 'try{def_ch_pag(this.id); sell(this.id);}catch(e){;}; return false;');
а так
2. a.onclick = try{def_ch_pag(this.id); sell(this.id);}catch(e){;}; return false;

якобы атрибуту onclick в первом примере присваевается строка а не функции
но так тоже не пашет все равно страница перегружается хотя должна срабатывать ajax-овая def_ch_pag(this.id) 
smile smile  smile 

function def(){//по умолчанию
    var url="gallery/?d=1";
    xmlHttp.abort();
    xmlHttp.onreadystatechange=defPage;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

def();
function defPage(){
    if(xmlHttp.readyState==4){
        if (xmlHttp.status==200){
            response=xmlHttp.responseText.split("|");
                        t1='bpicture/'+response[0];
            t2='bpicture/'+response[2];
            t3='bpicture/'+response[4];
            t4='bpicture/'+response[6];
            t5='bpicture/'+response[8];
            t6='bpicture/'+response[10];
            t7='bpicture/'+response[12];
            t8='bpicture/'+response[14];
            t9='bpicture/'+response[16];

            for(i=0, t=0, e=1; i<9; t+=2, e+=2, i++){
                document.getElementById("id"+(1+i)).src='picture/'+response[t];

                var d=document.getElementById("text"+(1+i));
                d.innerHTML='';

                var reg=/^[^0-9]/;            
                var s=reg.test(response[e]);
                if(s){
                    if(response[e]){
                        var s=document.createTextNode(response[e]);
                        d.appendChild(s);
                    }
                }
            }
            var del=document.getElementById('myContainer');
            var w=del.hasChildNodes();
            if(response.length<15){//устанавливает sel для последней страницы
                var ob=document.getElementById('myContainer');
                    for (var i=0; i < ob.childNodes.length; i++) {
                        if (ob.childNodes[i].nodeType == 1) {
                            var s=ob.childNodes[i];
                            s.firstChild.className='';
                        }
                    }
                var first=ob.lastChild;
                first.firstChild.className="sel";
            }
                else{
                if(w){
                    del.innerHTML='';
                }
            }
            var t=0;
            for( var i=10;  i<=40  ;i++ ){
                var reg=/^[0-9]/;
                var res=reg.test(response[i]);
                if(res){
                t++;
            function createElem() {
                        var div=document.createElement('div');
                        div.className='number';
                        div.setAttribute('id', id_even);
                        var a=document.createElement('a');

                                                a.setAttribute("href", "gallery/");
                        a.setAttribute("id", t);
                 a.setAttribute('onclick', 'try{def_ch_pag(this.id); sell(this.id);}catch(e){;}; return false;'); 
                        var tex=document.createTextNode(response[i]);
                        a.appendChild(tex);
                        div.appendChild(a);
                        var ob=document.getElementById('myContainer');
                        ob.appendChild(div);

                        var osa=document.getElementById('myContainer');//устанавливает класс sel при первом переходе на страницу
                        var ved=osa.firstChild;
                        var b=ved.firstChild;
                                    b.className="sel";

                    }
                    createElem();
                }
                else{
//                    break;
                }
            }
        }
        else{
            alert("status is"+ xmlHttp.status);
        }
    }
}


PM MAIL   Вверх
solenko
Дата 12.2.2008, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



Код

function foo() { alert('foo'); }
el.onclick = foo;
//или
el.onclick = function() { alert('foo') ; }
//или
el.onclick = Function('alert(\'foo\');');


И пользуйтесь кнопкой "код".


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Ghirik
Дата 12.2.2008, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



напишите так:

Код

a.onclick = add;

function add() {
try{def_ch_pag(this.id);sell(this.id);}catch(e){;}; return false;
}
должно заработать.

Можно и так a.onclick = function....
Но у меня моск заклинило smile , неврублюсь как атрибуты передать....


Это сообщение отредактировал(а) Ghirik - 12.2.2008, 15:53


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
azam
Дата 12.2.2008, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 8.10.2007
Где: г. Владикавказ

Репутация: нет
Всего: нет



спасибо всем! пока ждал ответа нашел сам захожу сюда и вы мне тоже самое советуете. Заработало вот так;

a.onclick = function () { def_ch_pag(this.id); sell(this.id); return false; };

если можно объясните почему не работает так
a.setAttribute('onclick', 'def_ch_pag(this.id); sell(this.id); return false;' 

ВСЕМ СПАСИБО!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0719 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.