这是我的问题。我编写了一些自定义 jquery 来切换我网站上的登录表单。然后,我添加了一些我在此处找到的代码,如果您单击它来关闭该框。
问题出现了,因为我有一个链接到这个 div 内的一个花式框,它可以切换进/出。因为我event.stopPropagation();
与点击一起使用,所以它与那个fancybox链接混淆了。完整的代码示例如下。
//Login Toggle
$('a.login').click(function() {
if ($('.login-box').is(':hidden')){
$('.login-box').fadeIn('normal');
$('span.arrow-up').fadeIn('normal');
$(this).text('Close');
}
else{
$('.login-box').fadeOut('normal');
$('span.arrow-up').fadeOut('normal');
$(this).text('Log-In');
}
});
//Close when click off login
$('html').click(function() {
$('.login-box').fadeOut('normal');
$('span.arrow-up').fadeOut('normal');
$('a.login').text('Log-In');
});
//Exclude these divs, so clicking inside them won't close login
$('.login-box, a.login, span.arrow-up').click(function(event){
event.stopPropagation();
});
//Forgot Password Fancybox
$("a.fancybox").fancybox({
maxWidth : 800,
maxHeight : 600,
fitToView : false,
width : '70%',
height : '70%',
autoSize : false,
closeClick : false,
openEffect : 'fade',
closeEffect : 'fade'
});
如果我取出 stopPropagation,一切都按预期工作(fancybox 按钮有效),我只是失去了通过在登录框外部单击来关闭登录框的能力。任何人都可以帮助我用一种更聪明的方式来编写它,而不会破坏fancybox的功能吗?