Изменить событие onclick, если JavaScript не работает - PullRequest
4 голосов
/ 22 ноября 2010

У меня есть это:

function tp_visible(action){
    if(action==1){
        document.getElementById("tp").style.display='block';
        document.getElementById("tp_action").onclick='tp_visible(0);
        return false;';
    }
    else {
        document.getElementById("tp").style.display='none';
        document.getElementById("tp_action").onclick='tp_visible(1);
        return false;';
    }
    return false;
}

Почему вышеописанное не меняет событие onclick?

Я использую Firebug , и событие остается прежним...

Вот HTML:

<a
    id='tp_action'
    name='tp_action'
    href='#'
    onclick='tp_visible(1);
    return false;'
>Show info</a>

Ответы [ 2 ]

10 голосов
/ 22 ноября 2010

Проверка ниже будет работать для вас, потому что вы не можете присвоить обработчику строковое значение onclick.

function tp_visible(action){
    if(action==1){
        document.getElementById("tp").style.display='block';
        document.getElementById("tp_action").onclick= function ()
            { tp_visible(0); return false;};
    }
    else {
        document.getElementById("tp").style.display='none';
        document.getElementById("tp_action").onclick= function ()
            {tp_visible(1); return false; }
    }
    return false;
}
0 голосов
/ 28 ноября 2010

Если вы начинаете с Javascript, я предлагаю вам познакомиться с одной из множества превосходных библиотек javascript и никогда не пытаться написать этот материал для себя снова - это приводит к сумасшествию.

Также вы могли бы сделать хуже, чем купить Javascript the Good Bits и посмотреть серию видеороликов Дугласа Крокфорда .

...