如果我们're处于默认状态,并且没有选择其他选项,则不执行任何操作.如果从其他选项中恢复到默认值,请采取措施

if we're at default and no other options were chosen, do nothing. if were back at default from other options, do something

本文关键字:如果 选项 其他 执行 任何 操作 默认值 采取措施 恢复 有选择 re      更新时间:2023-09-26

我有一个默认值2 var items = [2]和单击事件,该事件根据单击情况将值从2来回更改为3。由于默认值是2,所以当用户单击li中的2选项时,应该不会发生任何事情(这就是我想要的),因为不需要进行任何更改。只有当用户单击任何其他选项时,他们才能单击2选项来使用2功能(他们可以单击它,但不会出现任何功能)。我想我需要逻辑的帮助

      $(document).ready( function(){
        var items = [2]
        $('ul  > li > span').on('click', function(e){
            if($(this).siblings("ul").is(":visible")){
                $(this).siblings("ul").slideUp("fast")
            }else{
                $(this).siblings("ul").slideDown("fast")
            }
        })
        $('ul.adding li ul li').on("click" , function(e){
            if($(e.target).hasClass('twoItems')){
                if(items[0] !== 2){
                    //this is messed up
                    items[0] = 2
                    $('.output').append(items[0])
                }else{
                    $('.output').append(items[0])
                }
            }
            if($(e.target).hasClass('threeItems')){
                items[0] = 3
                $('.output').append(items[0])
            }
            console.log(items)
        })
        $('.output').append(items[0])

    });

html:

<div class="container">
    <ul class = "adding">
        <li><span class = "span">Add</span> <ul>
            <li class="twoItems">Two Item</li>
            <li class = "threeItems">three items</li>
        </ul></li>
    </ul>
</div>
<div class="output"></div>

尝试从$('ul.adding li ul li').on("click"处理程序中删除else语句

$(document).ready(function() {
  var items = [2]
  $('ul  > li > span').on('click', function(e) {
    if ($(this).siblings("ul").is(":visible")) {
      $(this).siblings("ul").slideUp("fast")
    } else {
      $(this).siblings("ul").slideDown("fast")
    }
  })
  $('ul.adding li ul li').on("click", function(e) {
    if ($(e.target).hasClass('twoItems')) {
      if (items[0] !== 2) {
        items[0] = 2
        $('.output').append(items[0])
      }
    }
    if ($(e.target).hasClass('threeItems')) {
      items[0] = 3
      $('.output').append(items[0])
    }
    console.log(items)
  })
  $('.output').append(items[0])
});
<div class="container">
  <ul class="adding">
    <li><span class="span">Add</span> 
      <ul>
        <li class="twoItems">Two Item</li>
        <li class="threeItems">three items</li>
      </ul>
    </li>
  </ul>
</div>
<div class="output"></div>
<div class="output"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="container">
  <ul class="adding">
    <li><span class="span">Add</span> 
      <ul>
        <li class="twoItems">Two Item</li>
        <li class="threeItems">three items</li>
      </ul>
    </li>
  </ul>
</div>
<div class="output"></div>