首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果不抛出任何错误,jquery addClass函数将无法正常工作。

如果不抛出任何错误,jquery addClass函数将无法正常工作。
EN

Stack Overflow用户
提问于 2018-05-30 22:56:25
回答 2查看 63关注 0票数 0

我想动态(点击)添加“选定的”类到div元素,但它既不工作也不抛出错误。即使在控制台中,它也只是运行,没有工作或抛出错误。

代码语言:javascript
复制
<div class="col s8 m4 card-box cursor-pointer">
<div class="card"
     id="object__{{ key }}"
     name = "{{ value }}__{{ key }}__{{ qb_id }}"
     oncontextmenu="chapter_context_menu(event, {{ qb_id }}, {{ key }}, '{{ value }}');">
    <div class="card-content  light-blue lighten-4">
        <span class="card-title black-text">{{ value }}</span>
        <p class="grey-text text-darken-2">Chapter {{ forloop.counter }}</p>
    </div>
    <div class="card-action">
        {% include 'question_edition/reusable/edit_chapter/edit_chapter_icon_trigger.html' %}
        {% include 'question_deletion/reusable/delete_chapter/chapter_delete_icon_trigger.html' %}
    </div>
</div>

代码语言:javascript
复制
function object_selected(card_id) {
   object_unselected();
   console.log("#"+card_id);
   var card = $('#'+card_id);
   card.addClass("object-selected");
}

$(".card").click(function(e){
    object_selected($(this).attr('id'));
});

控制台和警报工作正常,没有错误。但是类列表保持不变。请帮我解决这个问题。

EN

回答 2

Stack Overflow用户

发布于 2018-05-30 23:28:35

代码语言:javascript
复制
   $('.card').on('click', function(){     /* $(_selector_).no('click',...) for work if dynamically adding divs*/
   	      /* for remove all selected class */
   	    $('.card').removeClass('selected');
   	    /* for add selected class on this div  */
   	    $(this).addClass('selected');
   });
代码语言:javascript
复制
/* all css only for demonstration */       
       .card{
       	  border-style:solid;
       	  border-color:gray;
       	  border-width:4px;
       	  padding:2px;
       	  margin:1px;
       	  cursor:pointer;
       }
       /* add declare selected class after main class */
       .selected{
       	  border-color:red;
       }
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

    <div class="card">card1</div>
    <div class="card">card2</div>
    <div class="card">card3</div>

票数 0
EN

Stack Overflow用户

发布于 2018-05-30 23:51:26

在单击时切换类“选定”,如果再单击一次则将其移除,依此类推,每次单击/取消单击时,就像一个开关

代码语言:javascript
复制
jQuery('.card').off().on('click', function card_click(){
   jQuery(this).toggleClass('selected');
});

仅在单击时添加类“selected”

代码语言:javascript
复制
jQuery('.card').off().on('click', function card_click(){
   jQuery(this).addClass('selected');
});

在您的示例中

卡片变量=$(‘#’+

_id);

错误的部分是$('#'+card_id);不是DOM对象。如果你的DOM对象有一个特定的card_id,你应该这样写

变量卡= jQuery("\"#“+ card_id + "\"");

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

https://stackoverflow.com/questions/50607812

复制
相关文章

相似问题

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