обмен изображениями не работает в Safari

0

У меня есть подкачка подкачки изображений, которая работает красиво, но я только что заметил, что она не работает в 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 не нравится в вышеупомянутом?

Возможно, лучшее решение для кроссбраузеров?

Теги:
safari

1 ответ

1
Лучший ответ

Как справедливо указывает Гарет Лакетт, вы не должны определять метод внутри обработчика событий. Как указывает Антон, вы должны иметь его в загруженном обработчике (современная версия ниже). JSFiddle добавляет это для вас, поэтому вам нужно добавить его самостоятельно.

Попробуйте объявить его вне обработчика (в качестве глобальной функции)

http://jsfiddle.net/TrueBlueAussie/yb9NJ/2/

$(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);
}
  • 0
    Это не было проблемой Mac или Safari. Это был недостаток загруженного обработчика. Так что это нигде не сработало. Я просто не заметил, что как-то потерял. Я буду использовать вашу правую сторону версии закона выше :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню