jquery脚本在chrome中工作,但在firefox中不起作用

时间:2011-12-21 07:40:44

标签: jquery

我的脚本旨在从缩略图中找到指向全尺寸图片的链接,并在模态窗口中将其打开。它在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忽略了这个脚本并跟随链接。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你是否在document.ready处理程序中运行了这个.click()绑定?如果没有,那可能是您问题的根源。

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

修改

由于这不起作用,下一个想法是你应该尝试将你的类名改为没有连字符的东西。这可能会绊倒FF。试一试。