在FancyBox中加载多个帖子内容

时间:2014-05-19 作者:designlobby

我有一个自定义的帖子类型输出为列表。我试图通过Fancybox输出每个li中的一些内联内容。

迄今为止,所有作品都只展示了第一个李的内容。我知道问题是我每次在循环中都调用相同的ID。

我用了最后一个帖子here 要对每个ID进行编号(这很好),我现在可以看到每个链接ID是#content1、#content2、#content3等。

但是如何更改javascript以适用于所有#内容编号?

我的基本脚本是:

    $(\'a[href="#content"]\').fancybox({
        autoSize : false,
        width : 600,
        wrapCSS : \'inline-content\'
    });
这是我的循环,将数字添加到每个ID。。。

    <?php $args = array( 
            \'post_type\' => \'otherwork\',
            \'posts_per_page\' => -1,
            \'orderby\'=>\'date\',
            \'order\'=>\'ASC\'
        );
        $loop = new WP_Query( $args ); $i = 0; ?>

            <article>
                <ul class="otherwork">
                 <?php while ( $loop->have_posts() ) : $loop->the_post(); $i++; ?>
                    <li>
                        <a href="#content<?php echo $i; ?>" ><?php the_post_thumbnail( \'otherwork-thumb\' ); ?></a>
                        <div id="content<?php echo $i; ?>" style="display:none">
                            <h1><?php the_title(); ?></h1>
                            <?php the_post_thumbnail(); ?>
                            <?php the_content(); ?>
                        </div>
                    </li>
                <?php endwhile; ?>
                </ul>
                <div class="clearfix"></div>
            </article>
有关详细信息的HTML输出。。。

    <section id="main" class="span12" role="main">
    <article>
    <ul class="otherwork">
    <li>
    <a href="#content1">
    <div id="content1" style="display:none">
    </li>
    <li>
    <a href="#content2">
    <div id="content2" style="display:none">
    </li>
    </ul>
    <div class="clearfix"></div>
    </article>
    </section>
谢谢你的帮助!

3 个回复
SO网友:cybmeta

您正在使用选择器\'a[href="#content"]\' 在jQuery中,但href 目标链接的属性为#content<?php echo $i; ?>. 尝试删除<?php echo $i; ?>href 属性

如果需要jQuery代码,请识别所有<a> 具有的元素href 从字符串“content”开始,可以使用^ 修改器:jQuery(\'a[href^="#content"]\'). 因此,您的代码看起来:

jQuery(\'a[href^="#content"]\').fancybox({
    autoSize : false,
    width : 600,
    wrapCSS : \'inline-content\'
});
请注意,使用$ Wordpress中的命名空间可能会导致javascript错误,因为在Wordpress中,jQuery在noConflict mode.

SO网友:designlobby

感谢杰伊·布兰查德here 发布答案!

使用“开始于”属性选择器-

$(\'a[href^=#content"]\')

http://api.jquery.com/category/selectors/attribute-selectors/

SO网友:Viktor Hugo Morales

对于内联内容,可以使用fancybox的href=“#content1”:

<a class="various "href="#content1">Inline</a>
<div id="content1" style="display:none">Your content</div>
最后是width jQuery:

$(".various").fancybox({
    maxWidth    : 800,
    maxHeight   : 600,
    fitToView   : false,
    width       : \'70%\',
    height      : \'70%\',
    autoSize    : false,
    closeClick  : false,
    openEffect  : \'none\',
    closeEffect : \'none\'
});
有关更多信息,请访问fancybox网站:http://fancyapps.com/fancybox/

希望这有帮助。

结束

相关推荐

我如何将模板url传递到我的主题管理区域中的javascript?

我需要将php文件(位于主题中的文件夹中)的路径传递到管理区域中使用的JS文件,但我不知道如何实现这一点。我想做的是构建一个页面,在其中选择表单中的一些选项将通过ajax将输入值传递给php脚本。但由于JS是客户端,我不知道如何指向正确的位置。我尝试使用以下方法进行测试:<?php wp_enqueue_script( \'some_handle\' ); $translation_array = array( \'some_string\' => __( \'So