fancybox可以打开一个表单类的多个实例吗

发布于 2024-10-19 21:47:41 字数 796 浏览 2 评论 0原文

 <a href=".login_form" class="the_form">click to Contact</a>


$(".the_form").fancybox({
        'scrolling'     : 'no',
        'overlayOpacity': 0.1,
        'showCloseButton'   : false,
        'onClosed'      : function() {
            $("#login_error").hide();
        }
    });






$(".login_form").bind("submit", function() {

    if ($(this).find(".name").val().length < 1 || $(this).find(".email").val().length < 1 || $(this).find(".msg").val().length < 1)  {
        $(this).find(".login_error").show();
        $.fancybox.resize();
        return false;
    }
});

我有一个循环并创建它的许多实例的表单。我想要做的是在该链接上单击打开表单的特定实例。我知道我可以通过为每个表单创建唯一的 id 来实现这一点,但是我想知道是否有更简单的方法。这段代码在理论上看起来很棒,但是 fancybox 不能与“.login_form”一起使用,只能与“#login_form”一起使用,这是一个特定的实例。

 <a href=".login_form" class="the_form">click to Contact</a>


$(".the_form").fancybox({
        'scrolling'     : 'no',
        'overlayOpacity': 0.1,
        'showCloseButton'   : false,
        'onClosed'      : function() {
            $("#login_error").hide();
        }
    });






$(".login_form").bind("submit", function() {

    if ($(this).find(".name").val().length < 1 || $(this).find(".email").val().length < 1 || $(this).find(".msg").val().length < 1)  {
        $(this).find(".login_error").show();
        $.fancybox.resize();
        return false;
    }
});

I have a form that loops and creates many instances of it. What I want to do is on that link click open that specific instance of the form. I know i can achieve this by creating unique ids for each form, however Im wondering if there is an easier way. This code looks great in theory, but fancybox won't work with ".login_form" only "#login_form" which is a specific instance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

驱逐舰岛风号 2024-10-26 21:47:41

如果您显示一些额外的标记,我也许可以提供帮助。

但是,也许您可​​以迭代每个项目并以这种方式将精美的框绑定到它?这样,每次迭代您都可以在精美的框声明中引用表单方向?

$(".the_form").each(function(){

    $(this).fancybox({
        'content': $(this).find("someChildOfTheForm"),
        'scrolling'     : 'no',
        'overlayOpacity': 0.1,
        'showCloseButton'   : false,
        'onClosed'      : function() {
            $(this).find(".login_error").hide();
        }
    });

});

jsfiddle 上的示例来描述我正在谈论的内容......

If you show some additional markup I might be able to help.

However, maybe you could iterate over each item and bind the fancy box to it that way? That way each iteration you could reference the form direction in your fancy box declaration?

$(".the_form").each(function(){

    $(this).fancybox({
        'content': $(this).find("someChildOfTheForm"),
        'scrolling'     : 'no',
        'overlayOpacity': 0.1,
        'showCloseButton'   : false,
        'onClosed'      : function() {
            $(this).find(".login_error").hide();
        }
    });

});

Example on jsfiddle to describe what I am talking about...

伴梦长久 2024-10-26 21:47:41

另外,如果我没猜错的话,您可以使用多个选择器,如下所示

$('#id1, #id2, #id3').fancybox({
    'scrolling'     : 'no',
    'overlayOpacity': 0.1,
    'showCloseButton'   : false,
    'onClosed'      : function() {
        $(this).find(".login_error").hide();
    }
});

Also if I got you correctly, you can use multiple selectors like this

$('#id1, #id2, #id3').fancybox({
    'scrolling'     : 'no',
    'overlayOpacity': 0.1,
    'showCloseButton'   : false,
    'onClosed'      : function() {
        $(this).find(".login_error").hide();
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文