У меня есть подкачка подкачки изображений, которая работает красиво, но я только что заметил, что она не работает в Safari.
$("#image1, #image2").click(function(){
switch(this.id)
{
case 'image1':
_(this.id,"../../img/answers(biggest2).png","../../img/b6a(AC)ans.png");
break;
case 'image2':
_(this.id,"../../img/suggestions2.png","../../img/b6b(AC)ans.png");
break;
}
function _(id,main, alt){
if($("#"+id).attr("src") == main) $("#"+id).attr("src", alt);
else $("#"+id).attr("src", main);
}
});
Есть ли что-то очевидное, что Macs не нравится в вышеупомянутом?
Возможно, лучшее решение для кроссбраузеров?
Как справедливо указывает Гарет Лакетт, вы не должны определять метод внутри обработчика событий. Как указывает Антон, вы должны иметь его в загруженном обработчике (современная версия ниже). JSFiddle добавляет это для вас, поэтому вам нужно добавить его самостоятельно.
Попробуйте объявить его вне обработчика (в качестве глобальной функции)
$(function(){
$("#image1, #image2").click(function () {
switch (this.id) {
case 'image1':
flipit(this.id, "http://t2.gstatic.com/images?q=tbn:ANd9GcS_pkp85ufRHC4vy0uMXMLV6TyemIQViRFEZXbbfY1tkFR9fSOX", "http://t3.gstatic.com/images?q=tbn:ANd9GcTOMTLvVtzl2kG_Oz4ODC5uvRMuHtlTNM84rj2iFiGqgq77dKJQ-Q");
break;
case 'image2':
flipit(this.id, src = "http://t2.gstatic.com/images?q=tbn:ANd9GcS_pkp85ufRHC4vy0uMXMLV6TyemIQViRFEZXbbfY1tkFR9fSOX", "http://t3.gstatic.com/images?q=tbn:ANd9GcTOMTLvVtzl2kG_Oz4ODC5uvRMuHtlTNM84rj2iFiGqgq77dKJQ-Q");
break;
}
});
});
function flipit(id, main, alt) {
if ($("#" + id).attr("src") == main) $("#" + id).attr("src", alt);
else $("#" + id).attr("src", main);
}