не работает onclick на firefox, chrome и сафари

Я работаю над программой, используя python, HTML и javascript. У меня есть два изображения, которые работают как кнопки, меняющие цвета при наведении мыши и при наведении мыши. Он также имеет функцию, которая работает, когда происходит событие onclick. Все работает очень хорошо в Internet Explorer (который является экстрагентом), но событие onclick не работает в Safari, Chrome или Firefox. Консоль ошибок не отмечает никаких ошибок, ни error.log на консоли.

Вы видите что-то не так с кодом? Существуют ли некоторые функции, такие как onmouseover, onmouseout или onclick, которые не работают в этих браузерах?

      <td><img src="/RH/images/tacha.png" onclick="eliminarRenglon('eliminar','%s');testing()" 
      onmouseover="this.src='/RH/images/tacha_2.png'" onmouseout="this.src='/RH/images/tacha.png'" /></td>''' % variable

     function testing(){
        alert("JUST TESTING");
     }

даже функция "тестирование" не работает. Функция «eliminarRenglon» очень хорошо работает в IE, а также функция «тестирования». Вот код «eliminarRenglon», но, поскольку он очень хорошо работает в IE, я не знаю, связана ли проблема с ним.

function eliminarRenglon(tipo,id) { 
   var nivel = "No"
   var divPrincipal = document.getElementById("divPrincipal");
   var idReq = document.getElementById("req" + id).value;
   var claveProyecto = document.getElementById("claveproyecto").value;
   var url = 'actualizarRenglonAjax.py?nivel='+nivel+'&tipo='+tipo+'&idReq='+idReq+'&claveProyecto='+claveProyecto;
   if(document.getElementById("selectReq" + id).value == ""){           
       xmlhttp = GetXmlHttpObject(nivel);
       if(!xmlhttp) {
             alert("Browser does not support HTTP Request");
             return;
       }
       var xml = xmlhttp;
       xmlhttp.onreadystatechange = function() {
           if(xml.readyState == 1) {
               loading.innerHTML = "<img src='/RH/images/loading_4.gif' />"
           }
           if(xml.readyState == 4) {
            divPrincipal.innerHTML = xml.responseText;
            actualizarTodo();
           }
       };
       xmlhttp.open("GET",url,true);
       xmlhttp.send(null);
       return true;
   }
   else
       alert("No se puede eliminar");
}

Буду очень признателен за помощь! Большое спасибо!


person mauguerra    schedule 15.02.2012    source источник


Ответы (1)


Я бы предложил добавить значение селектора к изображению, а затем привязать события ненавязчивым способом (позже это немного упрощает обслуживание).

Сделай это так:

<img src="/RH/images/tacha.png" class="myImage" />

затем, после загрузки DOM, прикрепите свои события (jquery здесь для простоты)

$('img.myImage').bind('click', function() { 
  alert('testing!'); 
  eliminarRenglon('eliminar','%s'); 
});
person Fishz    schedule 15.02.2012