【问题标题】:Multiple select and limit the selection of cookie item多选和限制cookie项的选择
【发布时间】:2019-04-02 13:44:31
【问题描述】:

我想对该项目进行多项选择。一旦被选中,cookie 将记住它的id 并重新调用它,无论是否刷新。还能够限制选择。

html

<div class="seat">
  <div class="ui-state-default" id="A13"><p>A</p></div>
  <div class="ui-state-default" id="B13"><p>B</p></div>
  <div class="ui-state-default" id="C13"><p>C</p></div>
</div>

js

$(document).ready(function() {
  var index = Cookies.get('active');
  $('.seat').find('p').removeClass('active');
  $(".seat").find('p').eq(index).addClass('active');
  $('.seat').on('click', 'p', function(e) {
    e.preventDefault();
    $('.seat').find('p').removeClass('active');
    $(this).addClass('active');
    Cookies.set('active', $('.seat p').index(this));
  });
});

css

p.active {
  background: #ffcc00;
  border: 3px solid #333;
}

p {
  background: #ccc;
  display: inline-block;
  border-radius: 5px;
  margin: 5px;
  padding: 10px;
  float: left
}

小提琴:http://jsfiddle.net/k6r86/423/

【问题讨论】:

  • 你有什么问题?您显示的代码有什么问题?

标签: jquery cookies multipleselection


【解决方案1】:

用这个更新你的javascript。它将在当前选择之间切换并选择多个值。

function update(ids){
$('.seat').find('p').removeClass('active');
for(var i =0 ; i< ids.length; i++){
  $(".seat").find('p').eq(parseInt(ids[i])).addClass('active');
}
}

$(document).ready(function() {
  var val = Cookies.get('active');
  if(val){
    update(val.split(','));
  }
  $('.seat').on('click', 'p', function(e) {
    e.preventDefault();
    var ids = Cookies.get('active');
    var currentIndex = $('.seat p').index(this);
    if(!ids){
     ids = '';
    }else{
      if(ids.search(currentIndex) === -1){
        ids += ',' + currentIndex;
      }else{
        ids = ids.replace(currentIndex,'');
      }
    }
    update(ids.split(','));
    Cookies.set('active',ids);
  });
});

【讨论】:

  • 请问如何限制只能选择2个?
  • @Wilf 现在选择将在 FIFO 基础上工作。先出现的条目需要在 2 个选择满后替换。 jsFiddle - jsfiddle.net/q9zrkLto
猜你喜欢
  • 2012-08-05
  • 1970-01-01
  • 2016-04-18
  • 2021-02-22
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多