2013-10-13 86 views
0

我想关闭一个弹出DIV使用关闭功能与jQuery,它工作之前,我添加了DIV的位置功能,并且我确实必须打破该功能.. 。我猜这是某个地方的语法错误,任何新的眼睛都愿意看看?关闭功能不工作在Jquery

泰华工作网站是在www.masterfade.com/maptest

下面的代码:

$(document).ready(function() { 

    $('.lightbox').click(function (event) { 
     event.preventDefault(); 
     $('.backdrop, #box').animate({ 
      'opacity': '.50' 
     }, 300, 'linear'); 
     $('#box').animate({ 
      'opacity': '1.00' 
     }, 300, 'linear'); 
     $('.backdrop, #box').css('display', 'block'); 
    }); 

    $('.lightbox2').click(function (event) { 
     event.preventDefault(); 
     $('#box2').css({ 
      left: function() { 
       return event.pageX - $(this).width(); 
      }, 
      top: function() { 
       return event.pageY - $(this).height(); 
      } 
     }); 
     $('.backdrop, #box2').animate({ 
      'opacity': '.50' 
     }, 300, 'linear'); 
     $('#box2').animate({ 
      'opacity': '1.00' 
     }, 300, 'linear'); 
     $('.backdrop, #box2').css('display', 'block'); 
    }); 
}); 

$('.backdrop, #box2').animate({ 
    'opacity': '.50' 
}, 300, 'linear'); 
$('#box2').animate({ 
    'opacity': '1.00' 
}, 300, 'linear'); 
$('.backdrop, #box2').css('display', 'block'); 


$('.close').click(function() { 
    close_box(); 
}); 

$('.backdrop').click(function() { 
    close_box(); 
}); 



function close_box() { 
    $('.backdrop, #box, #box2').animate({ 
     'opacity': '0' 
    }, 300, 'linear', function() { 
     $('.backdrop, #box, #box2').css('display', 'none'); 
    }); 
} 

回答

0

我觉得你的事件绑定和动画功能之前DOM元素负载通话。所以事件绑定不起作用。

我希望以下代码能够正常工作。

$(document).ready(function() { 

    $('.lightbox').click(function (event) { 
     event.preventDefault(); 
     $('.backdrop, #box').animate({ 
      'opacity': '.50' 
     }, 300, 'linear'); 
     $('#box').animate({ 
      'opacity': '1.00' 
     }, 300, 'linear'); 
     $('.backdrop, #box').css('display', 'block'); 
    }); 

    $('.lightbox2').click(function (event) { 
     event.preventDefault(); 
     $('#box2').css({ 
      left: function() { 
       return event.pageX - $(this).width(); 
      }, 
      top: function() { 
       return event.pageY - $(this).height(); 
      } 
     }); 
     $('.backdrop, #box2').animate({ 
      'opacity': '.50' 
     }, 300, 'linear'); 
     $('#box2').animate({ 
      'opacity': '1.00' 
     }, 300, 'linear'); 
     $('.backdrop, #box2').css('display', 'block'); 
    }); 


    $('.backdrop, #box2').animate({ 
     'opacity': '.50' 
    }, 300, 'linear'); 
    $('#box2').animate({ 
     'opacity': '1.00' 
    }, 300, 'linear'); 
    $('.backdrop, #box2').css('display', 'block'); 

    // following lines are edited 

    $('.close,.backdrop').click(close_box); 

    function close_box() { 
     $('.backdrop, #box, #box2').animate({ 
      'opacity': '0' 
     }, 300, 'linear', function() { 
      $('.backdrop, #box, #box2').css('display', 'none'); 
     }); 
    } 
}); 
+0

除了缺少}}; - 工作。 –

0

所以,

我浏览到您的网站,并与谷歌Chrome开发人员工具(控制台) iv'e手动调用$('.lightbox').click()close_box(),它似乎是工作的例外,没有JavaScript异常抛出。

但是,我不确定你甚至不明白什么是不工作。

我强烈建议您将Chrome浏览器与开发人员工具一起使用,这将使您的生活方式更轻松地进行Web开发。

使用此功能,您可以监控javascript错误并逐行调试您的代码。

好运

+0

我不知道什么是不工作。我不是一个开发人员,我只是在修补这个问题,因为一个项目在工作中引导我进入它,因此我不知道从哪里开始使用chrome中的开发人员工具的控制台部分。 –

+0

当我看到它时,您必须使用代码弄脏才能使其按照您的喜好工作。所有其他方式都是魔术...... 祝你好运! – geevee