首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >hasClass()不在变量函数中工作

hasClass()不在变量函数中工作
EN

Stack Overflow用户
提问于 2015-11-25 19:09:51
回答 1查看 321关注 0票数 0

我正在为一个网站开发一个图片库,该网站根据分类(在本例中,用来描述图片所属的事件)来切换图片。

我在归档中呈现了一个分类法列表,并使用数据属性保存分类法段塞,以便稍后作为类使用。

代码语言:javascript
运行
复制
<?php
$terms = get_terms( 'event-name' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
 foreach ( $terms as $term ) {
   echo '<a href="#" class="tax-list" data-hide="' . $term->slug . '">' . $term->name . '</a> ';


 }
}?>

</div>
</div>
<div class="row" id="ms-container-photo">

<?php query_posts('post_type=photo-gallery&orderby=rand&showposts=-1'); ?>



<?php if(have_posts()): while(have_posts()): the_post();?>
<?php
  ++$counter;
  if($counter == 3) {
  $postclass = 'col-xs-6 col-sm-6';
  $counter = 0;
  } else { $postclass = 'col-xs-6 col-sm-3'; }
?>



<div class="<?php echo $postclass; ?> <?php $terms = get_the_terms( $post->ID, 'event-name' );
if ( !empty( $terms ) ){
// get the first term
$term = array_shift( $terms );
echo $term->slug;
}?> photo-gallery ms-item"><img data-original="<?php
echo types_render_field("photo-url", array("argument1"=>"value1","argument2"=>"value2","argument2"=>"value2"));
?>" class="lazy"></div>

<?php endwhile; ?>
<?php else: ?>
<?php wp_redirect(get_bloginfo('siteurl').'/404', 404); exit; ?>
<?php endif;?>
<?php wp_reset_query();?>

目标是,使用顶部呼应的链接,能够根据通过定义div的术语将什么类添加到下面的div来隐藏/显示div。我试图用jQuery来实现目标,老实说,我很困惑为什么它不起作用.希望你们中有人能帮忙!

代码语言:javascript
运行
复制
$(document).ready(function(){
    $('a.tax-list').click(function(e){
        e.preventDefault();
        var hideselect = $(this).attr('data-hide'); 
        var tohide = $('div.photo-gallery');

        function hidebytax() {
            if ($(tohide).hasClass(hideselect)) {
                $(tohide).addClass('pink')
            } else {
                $(tohide).addClass('blue')
            };
        };  
        hidebytax();
    }); 
});

为了简单起见,我只选择添加一个类(pinkblue,取决于附加到div.photo-gallery的哪个词,但是当我单击触发链接时,无论单击哪个链接,pink总是被添加,而pink语句则完全被忽略。

有人能告诉我哪里出了问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 19:16:58

首先,通过删除所有粉色(&蓝色)类来重置div,而不是将属性用作类选择器,向它们添加类.pink,并使用jquery not().blue添加到.photo-gallery div的其余部分。

尝试:

代码语言:javascript
运行
复制
$('a.tax-list').click(function(e){
         $('.photo-gallery ').removeClass('pink');
        e.preventDefault();
        var hideselect = $(this).attr('data-hide'); 
                $("."+hideselect).addClass('pink');
                //$('div.photo-gallery').not($("."+hideselect)).addClass('blue');

    }); 

小提琴手:https://jsfiddle.net/yb6onm12/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33924614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档