2013-12-15 2 views
3

Вот мой тег HTML.jQuery attr() не работает на мобильном Safari

<a href="#" id="test"><img id="imgtest" src="imgs/test_0.png" width="108" height="32" /></a> 

Это мой jQuery.

$(document).ready(function() { 
    $("#test").click(function() {  
     $('#imgtest').attr('src', 'imgs/test.png'); 
    }); 
}); 

Мне нужно изменить изображение при щелчке метки привязки. Это прекрасно работает в любом браузере на рабочем столе, но мобильном Safari. Что случилось с этим?

+1

Вы пытались изменить свойство с помощью 'prop' вместо' attr'? –

+0

Я попробую сейчас, дадут вам знать результат. спасибо :) – Liz

+0

У вас есть сообщение об ошибке? – Streamside

ответ

1

Mobile Safari будет производить только события мыши, когда пользователь нажимает на элемент, который можно щелкнуть, например ссылку. Вы можете сделать элемент кликабельным, добавив к нему обработчик событий onClick, даже если этот обработчик ничего не делает.

- от here

Добавление фиктивного OnClick обработчик, чтобы сделать элемент кликабельным (который обычно не является):

<img id="imgtest" src="imgs/test_0.png" onclick="void(0)" /> 

Вы уже сделали ссылку, так что это не проблема.


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

mouse hands

- от here


Вы также можете попробовать touchstart или touchend события.

например.

$(document).ready(function() { 
    $("#test").on("click touchend", function() {  
     $('#imgtest').attr('src', 'imgs/test.png'); 
    }); 
}); 
Смежные вопросы