onclick () не работает в сафари - PullRequest
2 голосов
/ 13 июля 2011

Приведенный ниже код отлично работает в IE7, но не в Safari (5.0.5). Если возможно, я хочу избежать использования jQuery. Цель состоит в том, чтобы эта функциональность работала на iPad, но сейчас тестирую с настольным сафари. Пожалуйста, дайте мне знать, если у вас есть идеи, как заставить его работать как в IE, так и в Safari.

<div id="test" ></div>
<script>
  function attachCallback(node) {
    node.onclick = function() {   
      alert("coming here");
    } ;
  }  
  var retrybutton = document.createElement("img");
  retrybutton.src = "test.png";
  retrybutton.alt = "retry";

  retrybutton.setAttribute("id","retrybutton");
  attachCallback( retrybutton ) ;

  var a = document.getElementById("test");
  a.appendChild(retrybutton);
  // testing without using retrybutton
  var test = document.getElementById("retrybutton");
  test.click();
</script>
</body></html>

Обновление: обсуждаем, стоит ли использовать "onmouseup" или что-то вроде ниже [ Спасибо Андрес !! Я не могу добавлять комментарии]

 if (Prototype.Browser.IE) {
   document.getElementById("retrybutton").click(); 
 } else { // from question link in comment
   var event = document.createEvent("HTMLEvents");
   event.initEvent("click", true, true);
   document.getElementById('retrybutton').dispatchEvent(event);
 }

Ответы [ 2 ]

6 голосов
/ 13 июля 2011

В Safari метод click() (имитирующий щелчок мыши) нельзя применить к <img>.Но это может быть применено к <input type="image">.Вы можете использовать это?

4 голосов
/ 13 июля 2011

Как заметил gilly3, проблема в том, что вы не можете позвонить click() на <img>.Это не означает, что обработчик onclick не работает.Если вы возьмете мышку и нажмете на изображение, обработчик все равно сработает.

Теперь, если вы хотите смоделировать щелчок, этот ответ даст вам все необходимое для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...