2011-12-21 6 views
0

Мой скрипт предназначен для того, чтобы найти ссылку на полноразмерное изображение из миниатюры и открыть его в модальном окне. Он отлично работает в Chrome, но просто следует за ссылкой и, кажется, игнорирует скрипт в firefox.jquery script работает в chrome, но не в firefox

$(".gallery-item").click(function(e) { 
    e.preventDefault(); 
    //get var to hold ".galler-icon a" for this specific pic 
    var imagelink = $(this).children().children().attr('href'); 
    $('#dialog').append('<img id="theImg" class="resize" src="' + imagelink + '" />'); 
    var caption = $(this).find(".gallery-caption ").text(); 
    $('#dialog').append('<p id="theCaption">' + caption + '</p>'); 
    //Get the screen height and width 
    var maskHeight = $(document).height(); 
    var maskWidth = $(window).width(); 

    //Set height and width to mask to fill up the whole screen 
    $('#mask').css({ 
     'width': maskWidth, 
     'height': maskHeight 
    }); 

    //transition effect  
    $('#mask').fadeIn(1000); 
    $('#mask').fadeTo("slow", 0.8); 

    //Get the window height and width 
    var winH = $(window).height(); 
    var winW = $(window).width(); 
    //Set the popup window to center 
    $("#dialog").css('top', winH/2 - $("#dialog").height()/2); 
    $("#dialog").css('left', winW/2 - $("#dialog").width()/2); 

    //transition effect 
    $("#dialog").fadeIn(2000); 
    //if close button is clicked 
    $('.window .close').click(function(e) { 
     //Cancel the link behavior 
     e.preventDefault(); 
     $('#mask, .window').hide(); 
     $('#theImg').remove(); 
     $('#theCaption').remove(); 
    }); 

    //if mask is clicked 
    $('#mask').click(function() { 
     $(this).hide(); 
     $('.window').hide(); 
     $('#theImg').remove(); 
     $('#theCaption').remove(); 
    }); 
    return false; 
}); 

Подводя итоги, firefox игнорирует этот скрипт и следует по ссылке. Как я могу это исправить?

+0

Вы используете FireBug? Есть ли ошибки в консоли FireBug? –

ответ

1

У вас есть это .click() bind, выполняющийся в документе document.ready? Если нет, это, вероятно, является источником вашей проблемы.

$(function() { 
    $(".gallery-item").click(function(e) { 
    e.preventDefault(); 
    // etc... 
    }); 
}); 

редактировать

Поскольку это не сработало, то следующая мысль, которая возникает в том, что вы должны попытаться изменить свое имя класса к чему-то без дефиса. Это может сбить FF. Дать ему шанс.

+0

Да, я сожалею, что у меня возникли проблемы с отправкой кода с ним. – poerg

+0

См. Обновленный ответ. –

+0

К сожалению, у меня нет выбора. это сайт Wordpress, и я использую встроенную галерею, это код, который он генерирует (класс дефиса). Любые другие идеи? – poerg

Смежные вопросы