我有一个 Wordpress 插件(称为 Slideshow,找到 here ),它在幻灯片上方有分页,在 ul ( link to slideshow page ) 中显示为项目符号。
我需要的是将其显示为以下格式的数字:“Picture 1 of 15”。我是 javascript 的新手,很难做到这一点。我能够识别(至少我认为我是)需要为此更改的代码部分。
PHP ( link to file ):
<div class="slideshow_container slideshow_container_<?php echo htmlspecialchars($styleName); ?>" style="<?php echo (isset($settings['preserveSlideshowDimensions']) && $settings['preserveSlideshowDimensions'] == 'false' && isset($settings['height']) && $settings['height'] > 0) ? 'height: ' . $settings['height'] . 'px;' : ''; ?> <?php echo (isset($settings['maxWidth']) && $settings['maxWidth'] > 0) ? 'max-width: ' . $settings['maxWidth'] . 'px;' : ''; ?>" data-session-id="<?php echo htmlspecialchars($sessionID); ?>" data-style-name="<?php echo htmlspecialchars($styleName); ?>" data-style-version="<?php echo htmlspecialchars($styleVersion); ?>">
<?php if(isset($settings['showLoadingIcon']) && $settings['showLoadingIcon'] === 'true'): ?>
<div class="slideshow_loading_icon"></div>
<?php endif; ?>
<div class="slideshow_content" style="display: none;">
<?php
if(is_array($views) && count($views) > 0)
{
foreach($views as $view)
{
echo $view->toFrontEndHTML();
}
}
?>
</div>
<div class="slideshow_controlPanel slideshow_transparent" style="display: none;"><ul><li class="slideshow_togglePlay" data-play-text="<?php _e('Play', 'slideshow-plugin'); ?>" data-pause-text="<?php _e('Pause', 'slideshow-plugin'); ?>"></li></ul></div>
<div class="slideshow_button slideshow_previous slideshow_transparent" role="button" data-previous-text="<?php _e('Previous', 'slideshow-plugin'); ?>" style="display: none;"></div>
<div class="slideshow_button slideshow_next slideshow_transparent" role="button" data-next-text="<?php _e('Next', 'slideshow-plugin'); ?>" style="display: none;"></div>
<div class="slideshow_pagination" style="display: none;" data-go-to-text="<?php _e('Go to slide', 'slideshow-plugin'); ?>"><div class="slideshow_pagination_center"></div></div>
<!-- WordPress Slideshow Version <?php echo SlideshowPluginMain::$version; ?> -->
<?php if(is_array($log) && count($log) > 0): ?>
<!-- Error log
<?php foreach($log as $logMessage): ?>
- <?php echo htmlspecialchars($logMessage); ?>
<?php endforeach; ?>
-->
<?php endif; ?>
JS(link to file):
prototype.activatePagination = function () {
if (this.settings.showPagination) {
this.$pagination.find(".slideshow_pagination_center").html("<ul></ul>");
var i = this.$pagination.find("ul");
i.html(""), this.$views.each(t.proxy(function (t) {
var s = "",
e = parseInt(t, 10) + 1,
n = this.$pagination.data("goToText");
("string" != typeof n || n.length <= 0) && (n = this.$pagination.attr("data-go-to-text")), t == this.currentViewID && (s = "slideshow_currentView"), i.append('<li class="slideshow_transparent ' + s + '" data-view-id="' + t + '" role="button" title="' + n + " " + e + '"><span class="assistive-text hide-text">' + n + " " + e + "</span></li>")
}, this)), this.$pagination.find("li").attr("tabindex", "0").click(t.proxy(function (i) {
var s, e = t(i.currentTarget);
this.currentlyAnimating || (s = e.data("viewId"), isNaN(parseInt(s, 10)) && (s = e.attr("data-view-id"), isNaN(parseInt(s, 10))) || (this.pauseAllVideos(), this.playState === this.PlayStates.PLAYING && (this.pause(this.PlayStates.TEMPORARILY_PAUSED), this.play()), this.animateTo(parseInt(s, 10), 0)))
}, this)), this.bindSubmitListener(this.$pagination.find("li")), this.$container.bind("slideshowAnimationStart", t.proxy(function () {
var i = this.$pagination.find("li");
i.each(t.proxy(function (i, s) {
t(s).removeClass("slideshow_currentView")
}, this)), t(i[this.currentViewID]).addClass("slideshow_currentView")
}, this)), this.settings.hidePagination ? (this.$container.mouseenter(t.proxy(function () {
this.$pagination.stop(!0, !0).fadeIn(100)
}, this)), this.$container.mouseleave(t.proxy(function () {
this.$pagination.stop(!0, !0).fadeOut(500)
}, this))) : this.$pagination.show()
}
}, i.Slideshow.prototype.activatePauseOnHover = function () {
this.settings.pauseOnHover && (this.$container.mouseenter(t.proxy(function () {
clearTimeout(this.pauseOnHoverTimer), this.playState !== this.PlayStates.PAUSED && (this.pauseOnHoverTimer = setTimeout(t.proxy(function () {
this.pause(this.PlayStates.TEMPORARILY_PAUSED)
}, this), 500))
}, this)), this.$container.mouseleave(t.proxy(function () {
clearTimeout(this.pauseOnHoverTimer), this.playState !== this.PlayStates.PAUSED && this.interval === !1 && this.play()
}, this)))
}
}();
slideshow_jquery_image_gallery_backend_script_scriptsloadedFlag = !0;
我希望这是足够的信息。还有一个名为 all.backend.min.js 的文件,我不确定是否需要,但这里有一个 link以防万一。
此外,如果有人有替代插件,他们可以建议已经做了类似的事情,这就足够了。我可以编辑 CSS 以按我想要的方式显示,但我的 Javascript 不够好,无法编辑现有插件。
最佳答案
我们可以添加 CSS 和 jQuery 来隐藏和修改 slider 的输出。它是纯粹的额外代码,没有触及原始代码。可用于 functions.php 或更好的 custom plugin .
使用 CSS 我们隐藏了一些东西:
# Required: PHP 5.3
# See Lambda functions: https://stackoverflow.com/q/1909002/1287812
add_action( 'wp_head', function() {
?>
<style>
.slideshow_container_style-light .slideshow_pagination ul li {
background: none !important; /* was the bullet img */
}
span.assistive-text.hide-text { /* unhide text */
display: block !important;
font:15px arial,sans-serif;
position: initial !important;
text-shadow: #000 1px 1px 1px;
color:#fff;
}
</style>
<?php
});
我们使用 jQuery 修改:
add_action( 'wp_enqueue_scripts', function(){ wp_enqueue_script('jquery'); } );
add_action( 'wp_footer', function() {
?>
<script>
jQuery(document).ready(function($) {
function startUp() {
$("span.assistive-text.hide-text").each(function() {
var text = $(this).text();
text = text.replace("Go to slide", "");
$(this).text(text);
});
}
/* Wait slideshow start to fire the replace function */
var timeoutID = window.setTimeout( startUp, 1500 );
});
</script>
<?php
});
结果是删除项目符号并显示数字。要创建导航 Picture 1 of 15,还需要 jQuery,但不需要 Stack Overflow search。帮不上忙。
关于javascript - 我需要更改此 Wordpress 幻灯片插件的分页以显示为数字而不是图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24066242/
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候
修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
在我的应用程序中,我有一个文本字段,用户可以在其中输入类似这样的内容"1,2,3,4"存储到数据库中。现在,当我想使用内部数字时,我有两个选择:"1,2,3,4".split(',')或string.scan(/\d+/)do|x|a两种方式我都得到一个像这样的数组["1","2","3","4"]然后我可以通过在每个数字上调用to_i来使用这些数字。有没有更好的方法可以转换"1,2,3"to[1,2,3]andnot["1","2","3"] 最佳答案 str.split(",").map{|i|i.to_i}但是这个想法对你来说
从一开始,我就是一个Windows高手。我从MS-DOS开始。我安装了Windows2.1以及此后的所有Windows。现在,我家里有10台不同的Windows机器在运行,从Windows7Ultimate到各种版本的WindowsServer。我还没有完成Windows8,也不想去那里。我在服务器和各种软件方面都有UNIX经验,但它并不是我的首选环境。但是,我想我正在转换。我试图假装使用Cygwin和MSYS在Windows下运行UNIX。我的目的是搭建一个开发环境。两者都让我失望了。我花了比开发更多的时间来解决一系列技术问题。这是NotAcceptable。到目前为止,我的Ruby
据我们所知,Jekyll默认分页仅支持index.html,我想创建blog.html并在那里包含分页。有什么解决办法吗? 最佳答案 如果您创建一个名为/blog的目录并在其中放置一个index.html文件,那么您可以向_config.yml表示paginate_path:"blog/page:num"。不是使用根文件夹中的默认index.html作为分页器模板,而是使用/blog/index.html。分页器将根据需要生成类似/blog/page2/和/blog/page3/的页面。这将使您到达yourwebsite.com/b
我有一个像这样的ruby散列{"stuff_attributes"=>{"1"=>{"foo"=>"bar","baz"=>"quux"},"2"=>{"foo"=>"bar","baz"=>"quux"}}}我想把它变成一个看起来像这样的散列{"stuff_attributes"=>[{"foo"=>"bar","baz"=>"quux"},{"foo"=>"bar","baz"=>"quux"}]}我还需要保留键的数字顺序,并且键的数量是可变的。上面是super简化的,但我在底部包含了一个真实的例子。执行此操作的最佳方法是什么?附言还需要递归就递归而言,这是我们可以假设的:1)