【问题标题】:Jquery for each loop on interval check active state on this elementJquery for each loop on interval 检查此元素的活动状态
【发布时间】:2015-03-10 19:56:44
【问题描述】:

我正在使用 Drupal Views 幻灯片,幻灯片旋转,视图幻灯片在项目处于活动状态时自动添加一个活动类,我想不断监控 .views-slideshow-pager-field-item 项目以查看它们是否在那一刻包含活动类,如果不是,我想隐藏活动状态图像并显示非活动状态图像。请看下面我的代码,它会更有意义。

不起作用,两个div之间的活动状态不断变化,我想对此进行监控,以确定是否需要显示活动状态图像或原始图像。

提前致谢。

(function($) {
	setTimeout(function() {
		$(".views-slideshow-pager-field-item").each(function(){
			if ($(this).is(".views-slideshow-pager-field-item.active")) {
				$(this).find(".pager-item .pager-item-main-state").hide();
				$(this).find(".pager-item .pager-item-active-state").show();
			}else{
				$(this).find(".pager-item .pager-item-main-state").show();
				$(this).find(".pager-item .pager-item-active-state").hide();
			}
		});
	}, 1000);

}(jQuery));
//this one is active
<div id="views_slideshow_pager_field_item_bottom_home_page_banner-block_0" class="views-slideshow-pager-field-item views_slideshow_pager_field_item views-row-odd views-row-first active">
    <div class="views-content-field-slide-control-image-active">
        <div class="pager-item">
            <div class="pager-item-main-state"><img src="slide_control_demo.jpg" alt="" height="42" width="42"></div>
            <div class="pager-item-active-state"><img src="slide_control_active_demo.jpg" alt="" height="42" width="42"></div>
        </div>
    </div>
</div>

//not active
<div id="views_slideshow_pager_field_item_bottom_home_page_banner-block_1" class="views-slideshow-pager-field-item views_slideshow_pager_field_item views-row-even views-row-last"> 
    <div class="views-content-field-slide-control-image-active">
        <div class="pager-item">
            <div class="pager-item-main-state"><img src="slide_control_demo2.jpg" alt="" height="42" width="42"></div>
            <div class="pager-item-active-state"><img src="slide_control_active_demo2.jpg" alt="" height="42" width="42"></div>
        </div>
    </div>
</div>

【问题讨论】:

  • 您应该找到该脚本并查看是否可以向其中添加事件。我不是这个drupal设置的家人,但看起来它使用了循环脚本。如果是这样,请查看是否可以更改“选项”(jquery.malsup.com/cycle/options.html),为“之后”添加类似的功能即可。
  • @fanfavorite - 我不知道在 drupal 模块中进行编辑是否是一种好习惯(模块更新将取代自定义代码),但我继续遵循您的建议,现在它正在工作。感谢您的意见。

标签: jquery drupal-7 drupal-views


【解决方案1】:

你应该找到脚本,看看你是否可以在配置中添加一个事件。我不是这个drupal设置的家人,但看起来它使用了循环脚本。如果是这样,看看你是否可以改变'options',为'after'添加一个类似的功能就可以了。你不想编辑核心文件,所以如果没有配置选项,你可以用你自己的自定义覆盖 after 函数:

$.fn.cycle.defaults.after = function(currSlideElement, nextSlideElement, options, forwardFlag) {
   //Your code here
}

在执行此操作之前,请确保 jQuery 和循环函数已经初始化。

【讨论】:

    猜你喜欢
    • 2018-08-22
    • 2015-05-26
    • 1970-01-01
    • 2017-02-27
    • 2017-08-21
    • 2013-08-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    相关资源
    最近更新 更多