我在Wordpress主题中使用PhotoSwipe画廊,当我打开幻灯片放映时,没有显示图像标题。

我正在尝试为Wordpress写一个插件,可以解决此问题。据我所知(感谢上帝,有Google Chrome的Inspect Element函数!!!),我需要更改的div如下:

<div class="ps-caption-content">&nbsp;</div>


如果我在Google Chrome浏览器的Inspector的div标签之间插入了除之外的其他内容,它将成为图像的标题。

但是我不知道如何编写jQuery或javaScript函数以更改标题。

我在Google上搜索并找到了以下关于自定义PhotoSwipe图像标题的建议,但对我不起作用:

https://github.com/dimsemenov/PhotoSwipe/blob/master/src/examples/11-custom-captions.html

有谁知道我如何隐藏/显示幻灯片中图像的真实字幕?

我添加了一个新的Wordpress插件,并已安装并激活。它包含一个js文件夹,其.js文件名为custom_photoswipe_image_titles.js。

在我的插件内部,我有以下php代码:

<?php
/*
Plugin Name: wpCasa Image Titles
Plugin URI:
Description:  Adds titles above the listing gallery images
Version: 1.0.0
Author: Elshan Siradjov
Author URI: http://www.w3schools.com/
License:
*/


/**
 * Load javascript and css Files
 *
 */



function image_titles_add_to_doc_head()
{
    wp_enqueue_style('photoswipe-style', 'http://www.siradjov.anex.at/playground/wp-content/themes/wpcasa/lib/assets/js/photoswipe/photoswipe.css');

    wp_register_script( 'klassmin', 'http://siradjov.anex.at/playground/wp-content/themes/wpcasa/lib/assets/js/photoswipe/klass.min.js' );
        wp_enqueue_script( 'klassmin' );

    wp_register_script( 'code_photoswipe', 'http://siradjov.anex.at/playground/wp-content/themes/wpcasa/lib/assets/js/photoswipe/code.photoswipe-3.0.5.min.js' );
        wp_enqueue_script( 'code_photoswipe' );



    wp_register_script( 'custom_js_photoswipe_image_titles', 'http://siradjov.anex.at/playground/wp-content/plugins/wpcasa-image-titles/js/custom_photoswipe_image_titles.js' );
        wp_enqueue_script( 'custom_js_photoswipe_image_titles' );
}

add_action( 'wp_enqueue_scripts', 'image_titles_add_to_doc_head' );


在custom_photoswipe_image_titles.js文件中,我尝试了以下jquery代码以更改图像标题:

$('div.ps-caption-content').html('Test Caption');


但这没有用。标题仍然为空。

我还尝试将jQuery代码嵌入到文档就绪函数中,如下所示:

jQuery(document).ready(function($)
{
    $('div.ps-caption-content').html("blabla");
});


它也不起作用。

@vico:我在code.photoswipe-3.0.5.min.js中找到了一段代码:

(function(e,c,a){

 a.registerNamespace("Code.PhotoSwipe.Toolbar");
 var b=e.Code.PhotoSwipe;

 b.Toolbar.CssClasses={
      toolbar:"ps-toolbar",
      toolbarContent:"ps-toolbar-content",
      toolbarTop:"ps-toolbar-top",
      caption:"ps-caption",
      captionBottom:"ps-caption-bottom",
      captionContent:"ps-caption-content",   // This is where ps-caption-content is set!
      close:"ps-toolbar-close",
      play:"ps-toolbar-play",
      previous:"ps-toolbar-previous",
      previousDisabled:"ps-toolbar-previous-disabled",
      next:"ps-toolbar-next",
      nextDisabled:"ps-toolbar-next-disabled"};
  .....
  ......


我也在code.photoswipe-3.0.5.min.js中找到了以下代码:

initialize:function(d,c){
var g;
this.settings=c;
this.cache=d;
this.isVisible=!1;
this.fadeOutHandler=this.onFadeOut.bind(this);
this.touchStartHandler=this.onTouchStart.bind(this);
this.touchMoveHandler=this.onTouchMove.bind(this);
this.clickHandler=this.onClick.bind(this);
g=b.Toolbar.CssClasses.toolbar;
this.settings.captionAndToolbarFlipPosition&&(g=g+" "+b.Toolbar.CssClasses.toolbarTop);
this.toolbarEl=a.DOM.createElement("div",{"class":g},this.settings.getToolbar());

a.DOM.setStyle(this.toolbarEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});
this.settings.target===e?a.DOM.appendToBody(this.toolbarEl):a.DOM.appendChild(this.toolbarEl,this.settings.target);

a.DOM.hide(this.toolbarEl);
this.closeEl=a.DOM.find("."+b.Toolbar.CssClasses.close,this.toolbarEl)[0];
this.settings.preventHide&&!a.isNothing(this.closeEl)&&a.DOM.hide(this.closeEl);
this.playEl=a.DOM.find("."+b.Toolbar.CssClasses.play,this.toolbarEl)[0];
this.settings.preventSlideshow&&!a.isNothing(this.playEl)&&a.DOM.hide(this.playEl);
this.nextEl=a.DOM.find("."+b.Toolbar.CssClasses.next,this.toolbarEl)[0];
this.previousEl=a.DOM.find("."+b.Toolbar.CssClasses.previous,this.toolbarEl)[0];
g=b.Toolbar.CssClasses.caption;this.settings.captionAndToolbarFlipPosition&&(g=g+" "+b.Toolbar.CssClasses.captionBottom);
this.captionEl=a.DOM.createElement("div",{"class":g},"");
a.DOM.setStyle(this.captionEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});
this.settings.target===e?a.DOM.appendToBody(this.captionEl):a.DOM.appendChild(this.captionEl,this.settings.target);
a.DOM.hide(this.captionEl);

this.captionContentEl=a.DOM.createElement("div",{"class":b.Toolbar.CssClasses.captionContent},"");    // This where captionContent is being set!!!

a.DOM.appendChild(this.captionContentEl,this.captionEl);
this.addEventHandlers()},


在上面的函数中,以下行似乎正在设置ps-caption-content的值:

this.captionContentEl=a.DOM.createElement("div",{"class":b.Toolbar.CssClasses.captionContent},"");

最佳答案

那不是改变它的地方。

这是输出您的DIV的实际代码的小提琴

 this.captionContentEl = a.DOM.createElement("div", {
                "class": b.Toolbar.CssClasses.captionContent
            }, "");


这是您的源代码扩展的小提琴

http://siradjov.anex.at/playground/wp-content/themes/wpcasa/lib/assets/js/photoswipe/code.photoswipe-3.0.5.min.js

http://jsfiddle.net/SjZWy/

现在,您只需要找出代码中产生ACTUAL标题的位置,然后将标题var字符串粘贴到该div中就可以了。

关于javascript - 如何取消隐藏在Words的Photoswipe中的图像标题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24047844/

10-12 03:42