我使用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());
但它不起作用。
答案 0 :(得分: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());
这并不完美,但它的作用是希望它可以帮助其他人解决同样的问题。