带有fancybox的标签内容

时间:2011-11-12 17:05:25

标签: jquery ajax fancybox tabbed

我正在尝试使用fancybox通过ajax加载动态内容。

它拉得很好,但如果我使用默认功能或通过ajax使用,我不会更改选项卡。但我使用fancybox并将类型设置为'iframe'它加载和标签交替正确。

我正在考虑不使用iframe,以便盒子可以轻松自动调整到所选的标签

现场网站是www.wearsitbest.com ...登录/注册链接。

  

$(document).ready(function(){

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

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

              });     </script>

链接到花式框

  

登录/注册

tabbed.js用于login.php

  

onload = function(){var e; var i = 0;而(e =   document.getElementById('galleryx')。getElementsByTagName('DIV')   [i ++]){if(e.className =='on'|| e.className =='off'){         e.onclick = function(){var getEls =   document.getElementsByTagName( 'DIV');                 for(var z = 0; z

请帮助!!!!

1 个答案:

答案 0 :(得分:0)

编辑: 好的,我已经看了你的login.php文件。请记住,您正在使用fancybox插件使用AJAX加载内容。这与将其放入iframe非常不同。当您通过AJAX加载内容时,它是您网页的一部分,而不是您网页中的单独HTML文档。它将与您的页面共享相同的脚本,主页面上的任何脚本也可以应用于加载的内容,这就是我建议您使用jQuery代码的原因。

现在,在我运行代码的firebug javascript控制台中,它运行起来,而当你把它放在login.php文件中时却没有。很明显,脚本不是通过fancybox通过ajax加载的。看看:Using fancybox in an AJAX loaded page。如果您在firebug或其他工具中检查fancybox登录元素,则可以看到没有加载脚本。

因此,您需要在主页上使用单独的代码来处理加载时登录位的脚本。您可以使用fancybox onComplete选项。因此,在您的代码中为登录链接$("#various3").fancybox();初始化fancybox位,请改为使用此代码:

$("#various3").fancybox({onComplete: function() {
    var $gallery = $('#gallery');
    var $titles = $gallery.find('div[title]');
    $titles.click(function() {
        var $this = $(this);
        if ($this.hasClass('off')) {
            $titles.removeClass('on').addClass('off');
            $this.removeClass('off').addClass('on');
            $gallery.find('.show').removeClass('show').addClass('hide').hide()
                .end().find('#' + $this.attr('title')).removeClass('hide').addClass('show').show();
        }
    });
});

请注意,这是在您的主页上。现在,每当fancybox加载内容时,都会运行此代码。您可以在这里使用自己的tabbed.js javascript代码而不是我发布的jQuery代码,但两者都可以正常工作。

请注意,您在这里做的一件事根本就是错误的。 唯一的原因是,如果用户没有启用javascript,则需要将login.php文件作为独立页面 - 在这种情况下,链接会将用户带到该页面而不是加载fancybox。 但是,如果没有javascript,您的登录页面将无法正常运行。没有JavaScript的用户无法注册到您的网站

您应该对独立的login.php页面进行编码,以便在没有javascript的情况下工作正常,然后完全按代码添加Tab键功能。您在login.php独立页面上不需要任何javascript,因为按原样访问该页面的任何用户都不会启用javascript。

使页面在没有javascript的情况下工作的简单方法 - 使#Register和#Login div最初都有'show'类。然后将我上面的jQuery代码的第一位更改为:

var $gallery = $('#gallery');
$gallery.find('#Register').removeClass('show').addClass('hide');
var $titles = $gallery.find('div[title]');

相当长,但我希望能帮到你。如果您有问题,请告诉我。