0

我在使用 jQuery 和 prettyPhoto(wordpress 插件)时遇到问题!我的问题是我想从已经工作的标签之外的隐藏 div 获取图像描述。这是我到目前为止所拥有的:

<div class="portfolie_short_content_containe">                  
    <a class="lightbox" style="text-decoration: none;" rel="lightbox" href="<?php echo $image[0]; ?>" title="<?php echo $image_desc; ?>">
        <span class="hover">
            <div class="portfolio_thump_hover_text">
                <span class="lable"><?php echo $short_descr;?></span><br>
                <span class="lable"><?php echo $link;?></span><br>
                <span class="lable"><FONT style="color : #f47b42;">Se CV</FONT></span>
            </div>
        </span>
        <img src="<?php echo $image[0]; ?>" width="<?php echo $image[1]; ?>" alt="<?php echo $image_alt; ?>"></img>
    </a>

    <!-- hidden div containing description -->
    <div id="lightbox" style="display: none"><p><?php echo $full_descr; ?></p><div>
</div>

jQuery.prettyphoto.js 文件看起来像这样!

theRel = $(this).attr('rel');
galleryRegExp = /\[(?:.*)\]/;
isSet = (galleryRegExp.exec(theRel)) ? true : false;
var x = 500;
var elmtid = $(this).attr('class');

// Put the SRCs, TITLEs, ALTs into an array.
pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i) {
    if ($(n).attr('rel').indexOf(theRel) != -1) 
        return $(n).attr('href'); 
}) : $.makeArray($(this).attr('href'));

pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i) { 
    if ($(n).attr('rel').indexOf(theRel) != -1) 
        return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : "";
}) : $.makeArray($(this).find('img').attr('alt'));

//Get text from hidden dir!     
pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i) {
    if ($(n).attr('rel').indexOf(theRel) != -1) 
        return ($(n).find('p').text()) ? $(n).find('p').text() : ""; 
}) : $.makeArray($(this).find('p').text());

我对 jQuery 没有那么丰富的经验。任何人都可以帮助掌握描述吗?我已经尝试过这样的事情!

pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i) {
    if($(n).attr('class') != -1) 
        return ($('#'+elmtid).html()) ? $('#'+elmtid).html()  : \"\"; 
}) : $.makeArray($('#'+elmtid).html());

但它没有用。

4

1 回答 1

0

解决了它,也许很容易,但第一次使用 jQuery!

<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function(){

//reference the class instead of a tag
$j("div[class^='portfolie_short_content_containe']").prettyPhoto({theme: '<?php echo $portfolio_options["prtfl_prettyPhoto_style"]; ?>'});
});
</script>

在 js 文件中我改变了这个。

theRel = $(this).find('a').attr('rel');
//theRel = $(this).attr('rel');
galleryRegExp = /\[(?:.*)\]/;
isSet = (galleryRegExp.exec(theRel)) ? true : false;
var x=500;

pp_images = $.makeArray($(this).find('a').attr('href'));
pp_titles = $.makeArray($(this).find('img').attr('alt'));
pp_descriptions =  $.makeArray($(this).find('p').html());

它并不完美,但它可以工作,希望它可以帮助其他有同样问题的人。

于 2012-09-06T08:17:08.030 回答