jQuery Fancybox触发器

4

我使用fancybox打开一个带有表单的弹出窗口。目前,当鼠标离开主页面时,弹出窗口会出现。为了使这个功能正常工作,我有一个隐藏的链接标签,我使用trigger()函数模拟点击它,以便让链接的href(即fancybox的表单ID)出现。代码如下:

<a id="trigger" href="#feedback_form" style="display:none"></a>


$(document).mouseleave(function() {

//Triggers popup
$("#trigger").fancybox().trigger('click'); 

     //Popup function
     $("#trigger").fancybox({

     });

 });

有其他的方法吗?
3个回答

9

选项1:隐藏链接和两个功能:

1.1 将fancybox绑定到选择器:

$("#trigger").fancybox();

1.2 然后触发选择器:

$("#trigger").trigger('click'); 

选项2:隐藏链接和单个函数:

$(document).mouseleave(function() {
    $("#trigger").fancybox().trigger('click');
});​

请查看:JSFIDDLE 选项3(推荐):没有隐藏链接和单个函数:
$(document).mouseleave(function() {
    $.fancybox("#feedback_form");
});​

请查看:JSFIDDLE

我已经这样做了,但是一个内容为“#feedback_form”的框出现了,它将其呈现为HTML内容。 - Marios Fakiolas
1
@marios:没错,这是fancybox v2.1.3……你展示代码的方式,表单是在线(隐藏)在你的文档中,是吗?否则你需要提供更多信息或者显示你的代码。我认为JSFIDDLE相当具体。 - JFK
请在此处检查:http://stackoverflow.com/questions/13498274/fancybox-iframe-form-manipulation-with-ajax - Marios Fakiolas
选项2无法使用,每次点击它窗口会闪烁。使用选项3,是最佳的选择! - jmp

0

你也可以尝试使用mouseout事件:

$(document).mouseout(function() {
  $(".fancybox").fancybox();
});

不确定这是否有太大帮助,但它可能比最初仅适用于IE的mouseleave事件稍微好一些。


-2

你可以简单地这样做:

$(document).mouseleave(function() {

//Triggers popup
jQuery.fancybox({

href:$('yourcontentSelector');

 });

});

不幸的是,只有当我将它更改为'href':"$('yourcontentSelector')"时,它才会显示请求无法传递的消息。 - Marios Fakiolas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接